2017-10-17 27 views
0

似乎docker服務發現只適用於用戶定義的網絡,而不適用於默認網橋(docker0),但我在文檔中找不到任何內容。Docker服務發現不適用於默認橋樑

docker run --rm -d --name c1 alpine sleep 2h
docker run --rm -d --name c2 alpine sleep 2h
docker exec -ti c1 ping c2

它給了我ping: bad address 'c2'

但是,如果我創建一個自定義橋接網絡寄託都工作正常:
docker network create u-bridge
docker run --rm -d --name u1 --net u-bridge alpine sleep 2h
docker run --rm -d --name u2 --net u-bridge alpine sleep 2h
docker exec -ti u1 ping u2

它給我:PING u2 (172.18.0.3): 56 data bytes (...)

不應默認橋接網絡已服務發現?

回答

1

默認網橋上的容器需要明確linked,這被認爲是遺留/棄用的行爲。

警告:--link標誌是Docker的棄用舊功能。最終可能會刪除 。除非您絕對需要繼續使用 ,否則我們建議您使用用戶定義的網絡來方便在兩個容器之間進行通訊,而不是使用--link。一個 功能,用戶定義的網絡不支持,您可以使用 --link共享容器之間的環境變量。但是,您可以使用其他機制(如卷)以更受控的方式共享容器之間的變量環境 。

應該使用用戶定義的網絡來代替,正如您已經演示的那樣。