一台主机通过docker compose编排运行一个系统没什么问题,如果要运行多个相同的系统怎么做呢?
以部署wordpress(LNMP)为例,其实很简单,只需要修改三处:
1、对外暴露端口
修改docker-compose.xml中对外暴露端口的ports:
nginx:
mysql:
2、容器name
修改docker-compose.xml中容器的name:
nginx、wordpress、mysql分别修改(添加)container_name
为唯一即可
3、数据库涉及ip:port的配置
对于Wordpress,Mysql中有保存访问wordpress网站的host配置(若没有域名,是ip+port),需要将其手动改为第一步配置的暴露出的nginx端口+ip。
4、若出现服务混淆错乱
所谓服务混淆错乱,如:一个docker-compose.yml部署的wordpress1,另一个docker-compose.yml部署的wordpress2。可能有时出现wordpress2调用了wordpress1的Mysql服务。
原因:可能是两个docker-compose编排的Mysql内部端口一样。以及共用了一个网络。
解决:
1、wordpress2新建一个网络
docker network create wordpress2
2、修改docker-compose.xml容器所用网络为:wordpress2
修改所用网络:
networks:
wordpress2:
external: true
修改每个容器网络:
networks:
wordpress2:
aliases:
- mysql