我和搬運工網絡試驗,我似乎無法找到一種方式來實現以下目標:溝通,從泊塢窗泊塢容器主機
開始在主機中一個簡單的netcat的服務器:
nc -l -p 5555
然後在內通過與該服務器通信一個碼頭集裝箱,例如
# grab the docker network interface ip
hostip=$(ip route | awk '/docker0/ { print $NF }')
# pass in the docker network interface as a host and try a curl command
docker run --add-host=docker:"${hostip}" --rm -it hiromasaono/curl curl docker:5555
curl請求只是掛起並且主機netcat服務器沒有收到請求。
如果我不是用--net=host
選項啓動泊塢窗,它的工作原理:
docker run --net=host --rm -it hiromasaono/curl curl 127.0.0.1:5555
和netcat的服務器接收
GET/HTTP/1.1
User-Agent: curl/7.35.0
Host: 127.0.0.1:5555
Accept: */*
如何從泊塢窗容器內進行通信,以簡單的主機netcat的服務器沒有使用--net=host
(默認爲--net=bridge
)?
(供參考:我運行搬運工服務器/客戶端1.11.2)
Potentailly相關資源我研究在尋找一個答案:
- Document how to connect to docker host from container (github issue)
- How to connect to Docker host from container (github issue)
- Allow Docker Container to Connect to a Local Postgres DB
- Docker Container Networking Documentation
感謝您的回覆。 1.看起來不錯: 'tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN' 2.如果docker主機名設置爲「在我的問題 –
中描述可以有防火牆阻止端口5555上的請求嗎?如果docker主機名不是指向127.0.0.1,並且您能夠ping從Docker容器內指向的IP,那麼我的猜測就是主機上的防火牆。 –
再次感謝您的迴應:據我所知,我沒有任何防火牆活動。您是否能夠成功地與Docker容器中的主機的「LISTEN」端口進行通信? –