内部通信地址 | ||
nginx | 172.111.0.10 | docker-nginx |
mysql | 172.111.0.20 | docker-mysql |
php | 172.111.0.30 | docker-php |
1、创建单独目录
2、创建容器的自定义网络
docker network create --subnet=172.111.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mynetwork
3、dockerfile自定义镜像
(1)nginx镜像
①准备好nginx的配置文件
②创建nginx基础镜像
③构建nginx镜像
docker build -t nginx:lnmp .
④创建nginx容器
docker run -itd --name nginx -p 80:80 -v /opt/nginx:/opt/nginxlogs --net mynetwork --ip 172.111.0.10 nginx:lnmp
/opt/nginx宿主机的目录
/opt/nginxlogs容器的目录
⑤测试
(2)mysql镜像
①准备好mysql的配置文件
②创建mysql镜像
③构建mysql镜像
docker build -t mysql:lnmp .
④创建mysql容器(一定要给权限)
docker run -itd --name mysql -p 3306:3306 --privileged -v /opt/mysql:/opt/mysql --net mynetwork --ip 172.111.0.20 mysql:lnmp
⑤测试
(3)php镜像
①准备好php的配置文件
②创建php镜像
③构建php镜像
docker build -t php:lnmp .
④创建php容器(解析php文件,需要挂载nginx和mysql)
docker run -itd --name php -p 9000:9000 --volumes-from nginx --volumes-from mysql --net mynetwork --ip 172.111.0.30 php:lnmp
⑤测试
浏览器访问http://20.0.0.16/wordpress/index.php
问题:无法写入php文件
原因:nginx的html没有赋权
解决:创建nginx容器时赋权