[英]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名称时,两者都响应...
我该如何解决? 我使用的是不良做法?
我已经尝试过:-在每个撰写文件中更改名称
我认为选择是:
我知道您已经尝试过,在每个撰写文件中将名称更改为不同,例如:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.