2
這些都是我所採取的步驟:無法從碼頭工人容器內訪問MacOSX的主機端口
Prework:
第一:
docker-machine create -d virtualbox default
然後,我創建了一個容器以下Dockerfile:
FROM centos:latest
沒有別的 - 只是CentOS的副本。我內置容器:
docker build -t mycontainer .
並運行它:
docker run -it --net="host" --name="test" -p 9200:9200 mycontainer
問題:當我走在容器內,並嘗試訪問MacOSX上(運行的服務,如簡單的網絡服務器或當地elasticsearch),我得到:
curl localhost:9200
curl: (7) Failed connect to localhost:9200; Connection refused
我從泊塢窗VM(docker-machine ssh default
)內得到同樣的錯誤。
我嘗試在virtualbox中進行端口轉發,將9200設置爲9200 - 但它沒有幫助。
任何想法?
我用'--net =「host」',但是我發現我可以連接到VM但不是MacOSX。那麼,我需要從虛擬機獲得一個雙向網絡到我的MacOSX? – Xiphias
對不起,我跳過了--net =「host」部分。是的,您可以在virtualbox中將網絡設置爲NAT以訪問主機的端口。儘管如此,我仍然無法連接到localhost:端口,但必須使用'nc 10.0.2.2 9200'連接到主機端口(10.0.2.2是nat連接的默認網關) – christian
哇,現在這就是我喜歡的原因堆棧溢出。我不必使用'nc',甚至不需要'--net =「host」'。我的elasticsearch實例在容器內使用'curl 10.0.2.2:9200'開箱即用。我怎麼知道的? (誠實的問題:是10.0.2.2常識嗎?) – Xiphias