繁体   English   中英

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

[英]Docker container hostname with docker-compose

我有多个服务在运行每个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 但是当我在网络anetwork内ping mysql dns名称时,两者都响应...

我该如何解决? 我使用的是不良做法?

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

我认为选择是:

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

     version: '2' services: mysql1: image: "mysql" [...] 
  2. 连接到每个容器时,请使用标准名称,在这种情况下,即service1_mysql_1service2_mysql_1 由于生成的名称并不理想,但是可以使用container_name选项显式设置此名称,从而对其进行固定:

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

    然后,需要连接到在这个数据库的容器anetwork可以连接使用主机名my-service1-mysql

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM