簡體   English   中英

docker 沒有將端口暴露給網絡主機

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM