2017-02-18 193 views
0

訪問我的端口1運行的服務1一個container1搬運工集裝箱港口從另一個容器

我運行一個服務2一container2的上端口2

如何訪問服務2:從服務1端口2 :PORT1?

我提到容器連接在一起。

我問,如果有一種方法可以做到這一點,而無需訪問docker0 IP(這裏的端口是可見的)

感謝

+0

假設service2已經在service1之前運行,並且在service1開始時鏈接爲's2',那麼您應該可以在service1內調用s2:? – hurturk

+0

hi @zatta!實際上這是不可能的 –

+0

我可以問一下你運行service1的命令是什麼? – hurturk

回答

2

的首選解決方案是將兩個容器在同一網絡上,使用內置dns發現按名稱到達另一個節點,並且您將能夠通過容器端口訪問它們,而不是主機發布的端口。通過CLI,看起來像:

docker network create testnet 
docker run -d --net testnet --name web nginx 
docker run -it --rm --net testnet busybox wget -qO - http://web 

的busybox的顯示了一個樣本客戶容器連接到名爲網絡nginx的容器,通過端口80。注意,此端口並不需要發佈到被可達其他容器。

使用自己的網絡設置多容器環境是docker-compose的一項常見任務,因此如果您發現自己在做這些工作,我建議您查看此工具。