2017-02-19 240 views
1

我在Mac OS內本地主機上運行的服務,我有我的機器上運行的本地主機上的一個服務:8000打從泊塢窗圖像

現在我想推出一個碼頭工人形象,打從這項服務中這裏。

我做了碼頭橋,我從裏面使用它,但它不工作。 這裏是我的步驟:

我的主機IP:

ifconfig 

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 
    ether 98:01:a7:b0:2b:41 
    inet 192.168.0.70 netmask 0xffffff00 broadcast 192.168.0.255 
    media: autoselect 
    status: active 

我打我的服務從主機:

curl localhost:8000 #this is working! 

我創建了一個橋樑,我使用它:

docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 dockernet 
docker run --rm -it -v "$(pwd):/src" --network=dockernet qatests /bin/bash 

從碼頭裏面,我做一個捲曲,但它不工作:

curl 192.168.0.1:8000 #it's not working :-(

有什麼想法?

+0

該服務是否在localhost或所有接口上運行? ss -tnl或netstat -tnl的輸出是什麼? –

+0

我相信你正在尋找的是[從Docker容器內部,我如何連接到本機的本地主機](http://stackoverflow.com/a/24326540/2127492) – jrbeverly

回答

1

最後,我我發現,如果我ping我的電腦IP,我甚至可以從碼頭圖像中看到它。 爲了方便,我做了一個lounch腳本巫婆讓我當前的IP,並啓動泊塢窗圖像製作「mymac」在我的IP訪問地址 所以我所做的是吃午飯

MY_IP=$(ifconfig en0 | grep inet | grep -v inet6 | awk '{print $2}') 

docker run --rm -it -v "$(pwd):/src" --add-host=mymac:$MY_IP qatests 
/bin/bash 

內搬運工人我現在可以吃午飯:

curl mymac:8000 #it works! now mymac is my pc outside docker 
1

你不需要創建一個新的網絡。您可以使用默認的(橋接)。

只要檢查其IP被關聯到docker0接口在主機與ipifconfig(在我的情況是172.17.42.1),並使用該IP從容器內:

$ curl 172.17.42.1:8000