[英]docker not exposing the port with network host
我正在嘗試運行一個偵聽端口 5555 的EXPOSE 5555
容器,圖像是使用EXPOSE 5555
構建的,我正在運行容器,如下所示
$ docker run -d --name controler -p 5555:5555 -v /var/run/docker.sock:/var/run/docker.sock --net=host my_image:latest
容器啟動正常但端口沒有暴露,運行 docker port 返回錯誤消息
$ docker port controler 5555
Error: No public port '5555/tcp' published for controler
如果我在沒有--net=host
情況下運行容器,則會暴露端口並且我可以訪問該容器。
對這里真正發生的事情的任何想法或提示表示贊賞。
注意:我在運行 el capan 的 mac 上使用最新的 docker for mac beta 版本 1.12.0-beta21(版本:11019)
--net=host
選項此選項將容器的虛擬 NIC 綁定到主機物理 NIC(通過授予對本地系統服務(例如 D-bus)的完全訪問權限)。
使用此選項時,主機將從物理 NIC 授予一個請求網絡套接字的程序。 然后,您的服務將按預期使用5555
端口。
-p 5555:5555
選項此選項將(通過iptable
類的機制)網絡套接字containter-ip:5555
綁定到網絡套接字host-ip:5555
。
恕我直言,同時使用它們似乎有點不合邏輯。 如果需要將容器化服務發布到套接字host-ip:5555
那么最干凈的方法是僅使用-p 5555:5555
選項。
`在 jdbc url spring.datasource.url=jdbc:postgresql://12.45.67.12:5432/postgres 中添加你的 ip
在 pg_hba.conf 文件中添加這個 conf 主機所有 0.0.0.0/0 md5`
這個 conf 對我有用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.