[英]Problems getting docker containers to see (ping) each other by name
我有三個碼頭工人,
目前,JC無法通過“名稱”看到EC。 當我說“看”時,我的意思是如果我在JC上對EC進行ping: unknown host
,我會得到一個ping: unknown host
。 有趣的是,如果我對TC的EC進行ping操作,我會得到回復。
這是我如何啟動容器。
docker run -dit --name JC myapp-image
docker run -d --name EC elasticsearch:1.5.2 elasticsearch -Des.cluster.name=es
docker run --rm --name TC -it busybox:latest
然后,為了從JC ping EC,我發出以下命令。
docker exec JC ping -c 2 EC
我得到一個ping: unknown host
有了TC,因為我已經在shell,我可以做一個ping -c 2 EC
,我得到2個回復。
我想也許這與我的Java應用程序有關,但我懷疑它是因為我修改了我的Dockerfile
只是站起來容器。 Dockerfile
如下所示。
FROM java:8
VOLUME /tmp
請注意,您可以通過docker build -no-cache -t myapp-image .
創建上述docker docker build -no-cache -t myapp-image .
。
另請注意,我安裝了Docker Weave Net,這似乎無助於讓JC通過名稱查看EC。 另一方面,我試圖找到每個容器的IP地址如下。
docker inspect -f '{{ .NetworkSettings.IPAddress }}' JC
- > 172.17.0.4
docker inspect -f '{{ .NetworkSettings.IPAddress }}' EC
- > 172.17.0.2
docker inspect -f '{{ .NetworkSettings.IPAddress }}' TC
- > 172.17.0.3
我當然可以通過IP地址從JC ping EC: docker exec JC ping -c 2 172.17.0.2
。 但是讓容器通過IP地址看到彼此並沒有幫助,因為我的Java應用程序需要主機名引用作為其配置的一部分。
關於發生了什么的任何想法? 它是容器圖像本身嗎? 為什么busybox容器映像能夠按名稱ping ElasticSearch容器,但java容器不能?
更多信息。
任何幫助表示贊賞。
在同一個--link
守護程序中,使用舊的--link
選項來更新每個組件的/ etc / hosts,並確保可以ping另一個組件:
docker run -d --name EC elasticsearch:1.5.2 elasticsearch -Des.cluster.name=es
docker run -dit --name JC --link ED myapp-image
docker run --rm --name TC -it busybox:latest
然后, docker exec JC ping -c 2 EC
應該可以工作。
如果沒有,請檢查是否由於基本映像和安全問題:請參閱“ 解決原子主機上容器中的Ping問題 ”。
JC基於docker/_java:8
,它本身基於jessie-curl
, jessie
。
此默認網絡中的容器可以使用IP地址相互通信。 Docker不支持默認網橋上的自動服務發現。 如果要與此默認橋接網絡中的容器名稱進行通信,則必須通過舊版docker run -link選項連接容器。 docs.docker.org 。
它也應該使用新的網絡。
docker network create -d bridge non-default
docker run --net non-default ...
沒有將此行為應用於默認網絡的特定選項(通過查看docker network inspect
AFAICT)。 我猜它只是由“com.docker.network.bridge.default_bridge”選項觸發。
在另一個問題的第一部分中,建議在Docker 1.9中對此進行更改。 請注意,Docker 1.9是他們在穩定版本中打開新網絡系統的時候。 我在上面引用的用戶指南部分在1.8版中不存在。 Docker 1.9.0“橋接”與自定義橋接網絡導致主機文件和SSH_CLIENT env變量不同
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.