2016-03-07 127 views
0

我有一個docker容器在mac中默認的vm中運行,我已經將我的特定應用程序的端口映射到vm的端口。有一次,我已經做了我可以通過做訪問我的應用程序:如何從mac的Docker容器外部訪問?

curl $(docker-machine ip default):9003 

之後,我已經做端口轉發這種方式映射我的虛擬機移植到我的本地主機:

VBoxManage controlvm default natpf1 "9003,tcp,127.0.0.1,9003,,9003" 

一旦我已經做了,我讓我的應用從我的本地主機的響應

curl localhost:9003 

我的問題是:如何才能獲得來自外界,甚至從我自己的網絡此應用程序?我已經嘗試在我的mac中打開一個端口:

pass in inet proto tcp from any to any port 9003 

但仍然顯示端口與nmap關閉。有誰知道我錯過了什麼?

+0

你只綁定本地主機(127.0.0.1)。你需要綁定到你的虛擬機的「走出去」IP地址。 –

+0

偉大完全錯過了它,作爲回覆發佈它,我會接受它 – colom

+0

你可以在這裏找到解決方案:https://stackoverflow.com/questions/44384542/how-can-i-map-a-shared-folder-從-我的容器上-MAC/44529789#44529789 – Dan

回答

0

如果使用docker-run選項--net=host,則可以將套接字綁定到本地主機,因此本地堆棧以及NIC將在主機和容器之間共享。

OTOH,如果使用docker-run選項-p,則如果套接字綁定到本地主機IP地址,則無法從容器外訪問該服務。


等待@ marc-b的回答,不過,他給了它第一個。

相關問題