为了方便将自己的LAMP运行环境和项目在其他机器上部署或发布,可以用基于Dockerhub
里的mattrayner/lamp镜像打包自己需要的镜像。
1、先选择合适的镜像文件
镜像mattrayner/lamp有多个版本,根据自己需要选择下载
2、镜像在首次运行时会自动下载,也可以先pull拉取镜像后在运行容器
docker run -d --name=lamptest1 -p 8081:80 -p 3401:3306 -v /lamptest/test/:/app mattrayner/lamp:latest-1604-php5
docker run --name=[容器名称] -p 8081:80 -p 3401:3306 -v [项目代码路径]:/app mattrayner/lamp:latest-1604-php5
这段命令的内容是运行一个镜像容器,容器名称为lamptest1,
-p是将容器的80端口映射到宿主机的881端口上,这样访问宿主机ip:8081访问的是容器的80端口,3306端口类似。
-v是将宿主机的/lamptest/test/目录挂载到容器的/app下,镜像nginx的访问目录默认的是/app
最后是镜像及版本
首次运行拉取镜像试讲可能比较久
3、可以查看容器是否已经运行
docker ps
如果没有运行可以查看容器是否存在,已经存在可以重新启动或者删除后重建
docker ps -a
启动lamptest1
docker restart lamptest1
4、进入容器
可以进入容器设置安装其他自己需要的php扩展或其他插件,修改配置等
docker exec -it lamptest1 /bin/bash
5、安装容器后mysql的root密码是空的,直接回车登录后修改密码,必须修改完root密码后才可使用phpmyadmin登录
mysql -uroot -p
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
6、查看apache2配置文件
cat /etc/apache2/sites-available/000-default.conf
到此lamp环境就搭建完成了。
7、使用commit制作镜像
docker commit -m="提交的描述信息" -a="作者" 容器id 要创建的镜像名:标签
8、查看本地镜像并将镜像保存为本地文件其中5bbbccffa51b为镜像id,最后为保存地址及名称
查看生成的文件,文件比较大
9、将生成的文件复制到需要安装环境的宿主机上后使用load方法加载刚才上传的tar文件
docker load < /lamptest/qzlamp-1604-php5.tar
10、在新的机器上再此使用docker images命令查看本机的镜像,检查刚才load的镜像有没有加载进来,发现加载进来的镜像名称、标签均为none,使用docker tag 5bbbccffa51bqzlamp:qzlamptest 修改为原来的镜像名称和标签名称,其中5bbbccffa51b 为images id