gpt4 book ai didi

带有 docker-compose 的 Docker 容器主机名

转载 作者:行者123 更新时间:2023-12-01 04:42:01 26 4
gpt4 key购买 nike

我有多个服务运行每个 mysql数据库。
我正在使用 docker-compose在 docker 中部署我的应用程序。
我需要所有这些服务都在同一个网络中。
我为每个服务使用不同的 docker-compose 文件。

我的问题是:
如果容器在不同的撰写文件中具有相同的名称,我如何防止它们被命名为相同的(在 docker dns 中)。

例子:

service1.yml

version: '2'
services:
mysql:
image: "mysql"
network:
- anetwork
[...]

service2.yml
version: '2'
services:
mysql:
image: "mysql"
network:
- anetwork
[...]

这两个文件位于不同的文件夹中。启动所有 docker-compose up 后。容器显示为 docker ps .在命名 service1_mysql_1和另一个 service2_mysql_1 .
但是当我 ping mysql网络内的dns名称 anetwork , 双方回应...

我应该如何解决这个问题?我正在使用不良做法?

我已经尝试过:
- 更改每个撰写文件中的名称

最佳答案

我认为选项是:

  • 在每个撰写文件中将名称更改为不同,我知道您已经尝试过,例如:
    version: '2'
    services:
    mysql1:
    image: "mysql"
    [...]
  • 连接到每个容器时使用完全限定名称,即 service1_mysql_1service2_mysql_1在这种情况下。不理想,因为它是生成的,但可以通过使用 container_name 显式设置它来修复此名称。选项:
    version: '2'
    services:
    mysql:
    image: "mysql"
    container_name: my-service1-mysql
    [...]

    然后在anetwork上有一个需要连接这个数据库的容器可以使用主机名连接 my-service1-mysql
  • 关于带有 docker-compose 的 Docker 容器主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49591334/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com