一开始本来想着实现apache+mysql+php三个容器,奈何自己是个菜逼,搞了一段时间也没有弄出来。主要问题我觉得在于apache链接php容器后没有将php启动或者说php不可用(也可能是自己配置apache的问题),后续有机会再研究一下吧。
这次采用的方式是apache+php为一个容器,mysql为另一个容器,linux环境为centos 7.6。
我们这次采用的方式是拉一个centos的httpd然后在上面安装php
docker pull centos/http
docker run --name httpd_test -d --restart always -p 80:80 -v /data/www:/var/www/html centos/httpd
然后通过docker exec 在容器中执行安装php的命令
具体可以参考这篇文章https://www.jianshu.com/p/ffa601ad7563
这时候封装好了apache+php的镜像先不要启动,先拉一个mysql的镜像下来
docker pull mysql
docker run -d -p 127.0.0.1:3306:3306 --name mysqldb -e MYSQL_ROOT_PASSWORD=root mysql
这里需要注意我-p 后面使用的是127.0.0.1也就是说只有我本机可以访问,如果不需要这样设置可以直接写成-p 3306:3306。
然后我们启动刚刚的镜像
docker run -d -p 80:80 --name httpd_test -v /data/www:/var/www/html --link mysqlbd:mysql centos/http
使用–link就可以链接mysql,-v把你网站的地址挂载到容器中,这里还可以加上日志的地址等等。