我创建了简单的组合配置来尝试Postgres BDR复制。 我期望容器具有主机名作为我定义的服务名称,我期望一个容器能够使用此主机名解析并到达另一个容器。我希望,因为它是真实的: https://docs.docker.com/compose/networking/主机名未在Docker中设置
我的配置:
version: '2'
services:
bdr1:
image: bdr
volumes:
- /var/lib/postgresql/data1:/var/lib/postgresql/data
ports:
- "5001:5432"
bdr2:
image: bdr
volumes:
- /var/lib/postgresql/data2:/var/lib/postgresql/data
ports:
- "5002:5432"
但在现实中,两个容器拿到垃圾主机名和不可达的容器名称:
Creating network "bdr_default" with the default driver
Creating bdr_bdr1_1
Creating bdr_bdr2_1
Attaching to bdr_bdr1_1, bdr_bdr2_1
bdr1_1 | Hostname: 938e0585fee2
bdr2_1 | Hostname: 7153165f4d5b
是它是一个错误,或者我做错了什么? 我使用Ubuntu 14.04.4 LTS,Docker版本1.10.1,版本9e83765,docker-compose版本1.6.0,版本d99cad6
谢谢。我试图明确定义主机名,但不会将其他容器添加到/ etc/hosts,因此bdr1对bdr2一无所知。我也尝试过链接,但是我需要bdr1将bdr2和bdr2链接到bdr1链接,这是不允许的。 Docker文档中写的东西正是我想要的,但似乎并不奏效。 –