您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
docker-compose一键构建(尽量使用official官方镜像部署)lnmp
发布时间:2023-07-12 20:53:27编辑:雪饮阅读()
-
上篇虽然已经实现的个人感觉还是挺完美的,这次主要是了解下使用官方docker官方的mysql镜像和docker官方的nginx镜像,php就算啦,docker官方没有php7.4.33的版本,只有比这个版本低的。。
mysql虽然docker官方有,但是目前是8.0.33,那么至少是比我的这个版本5.7.33版本高,并且mysql8已经出来这么久了,也算是比较稳定了吧,虽然国内我目前看到很少有用到的。
nginx虽然docker官方有,但是最接近我这个版本1.8.1,我又不想要太老的,但是官方也没有我这个1.8.1,那我只能用了这个1.9的。
docker官方的mysql镜像的确做的挺用心的。支持直接在docker-compose.yml中指定root密码,也支持直接挂载宿主机目录到数据卷,且不限制必须是具名卷。
有兴趣的时候可以继续深入研究docker官方的mysql的Dockerfile,或许能找出这种最佳实践。
我这里就暂时先不深入了。
(1)那么这里用的编排yml文件是docker-compose-official.yml:
version: '2.3'
services:
nginx19:
image: nginx:1.9
ports:
- 80:80
depends_on:
- php7433
networks:
nginx19_php7433_mysql8033:
ipv4_address: 172.21.0.2
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
- ./web:/usr/share/nginx/html
php7433:
build:
context: .
dockerfile: Dockerfile_php7433
depends_on:
- mysql8033
networks:
nginx19_php7433_mysql8033:
ipv4_address: 172.21.0.3
volumes:
- ./web:/usr/share/nginx/html
mysql8033:
image: mysql
environment:
- MYSQL_ROOT_PASSWORD=xy220807
networks:
nginx19_php7433_mysql8033:
ipv4_address: 172.21.0.4
volumes:
- ./my8033.cnf:/etc/my.cnf
- /root/test/mysql:/var/lib/mysql
networks:
nginx19_php7433_mysql8033:
ipam:
config:
- subnet: 172.21.0.0/16
(2)由于之前已经开启过一次子网,所以这里如果开启相同的子网,那么会冲突的。所以这次编排就用172.21段的,所以之前那个test2.php里面的mysql地址也更换下
(3)这里使用的my8033.cnf其实是从docker官方mysql容器运行后里面拷贝出来重命名了的,然后将重命名后的这个配置文件里面的配置,主要就是那个bind-address=172.21.0.4配置了
然后重新挂载卷以覆盖docker官方mysql镜像运行的容器里面的那个配置文件
(4)用到的default.conf同样也是从docker官方nginx镜像运行的容器中取出来的,然后重新修改好后,重新挂载卷以覆盖docker官方nginx镜像运行的容器里面的那个配置文件。
(5)那么之前用的Dockerfile_php7433中的php-fpm的监听ip地址也要改了。。。,其实这里我感觉也是做挂载卷比较合适。这些小细节小瑕疵还真是多。。。
(6)那么这次部署则还是进入咱们这个yml所在文件目录中,只是这次我们使用了非默认的docker-compse.yml,所以要使用-f指定下,所以启动本次docker-compose部署命令如:
docker-compose -f docker-compose-official.yml up
(7)基于上篇,本篇所用的一些主要文件改动
关键字词:docker,compose,官方,lnmp
相关文章
- docker-compose一键构建(卷及具名卷)lnmp
- docker-compose一键构建(使用子网)lnmp
- docker-compose一键构建(非直接使用docker官方hub中的p
- docker一键构建lnmp(非docker-compose)
- Dockerfile构建lnmp(是docker而非docker-compose)(主机
- 2-5 composer之镜像
- 2-4 composer之create-project命令(判断php是否正确配
- 2-3 composer之install命令
- 2-2 composer之require命令
- 再次遭遇可恶的composer require时候的ssl错误