我創建了簡單的組合配置來嘗試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文檔中寫的東西正是我想要的,但似乎並不奏效。 –