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

我有多个服务运行每个
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后.容器显示为docker ps.在命名的service1_mysql_1和另一个service2_mysql_1上.
但是当我在网络网络内部ping mysql dns名称时,都响应…

我该怎么解决这个问题?我使用不好的做法?

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

最佳答案 我认为选项是:

>在每个撰写文件中将名称更改为不同,我知道您已经尝试过,例如:

version: '2'
services:
  mysql1:
    image: "mysql"
[...]

>连接到每个容器时使用完全限定名称,即本例中的service1_mysql_1和service2_mysql_1.它不是理想的,但可以通过使用container_name选项显式设置来修复此名称:

version: '2'
services:
  mysql:
    image: "mysql"
    container_name: my-service1-mysql
[...]

然后,需要连接到anetwork上的此数据库的容器可以使用主机名my-service1-mysql进行连接

点赞