docker compose运行多个相同系统


docker compose运行多个相同系统

一台主机通过 docker compose 编排运行一个系统没什么问题,如果要运行多个相同的系统怎么做呢?
以部署 wordpress(LNMP)为例,其实很简单,只需要修改三处:

1、对外暴露端口

修改docker-compose.xml中对外暴露端口的ports

(1)nginx:

docker compose运行多个相同系统-打不死的小强

(2)mysql:

docker compose运行多个相同系统-打不死的小强

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

修改每个容器(mysql 为例)网络:

networks:
    wordpress2:
        aliases:
            - mysql


发表评论

电子邮件地址不会被公开。 必填项已用*标注