容器無法訪問容器宿主機外部網路

2021-08-19 20:29:47 字數 580 閱讀 3453

現象是a機器上的容器無法訪問b機器

檢視docker網路

com.docker.network.bridge.enable_ip_masquerade值為false.

enable_ip_masquerade:是否開啟ip偽裝

ip偽裝,是linux系統的一種網路功能,如果一台linux主機使用ip偽裝功能連線到網際網路上,那麼其他計算機,不論是在同乙個區域網上還是通過數據機連線,只要連線到這個linux主機上,就可以與國際網際網路相連,即使它們沒有獲得正式指定的ip位址。這樣就可以將一些計算機隱藏在閘道器後面連線網際網路,而不被發現,看起來就像只有一台linux系統主機與網際網路相連。它允許使用者擴充套件ip位址,允許沒有註冊ip位址的計算機經由linux主機連線到網際網路上。

docker預設配置檔案在/etc/docker/daemon.json

刪除配置檔案中com.docker.network.bridge.enable_ip_masquerade等於false的設定(預設為true)

問題解決

外部主機無法訪問宿主機內容器是怎麼回事

是因為建立的容器採用的網路型別是 bridge,而宿主機沒有啟用 ip 所以,外部主機請求沒有 到對應容器。需要兩個步驟啟用 ip 功能。來自 docker 官方文件 配置 linux 核心允許 ip sysctl net.ipv4.conf.all.forwarding 1將 iptables f...

Docker容器訪問宿主機網路

業務請求量小的時候,我們會把一些工程部署到同一臺機器上。這些工程之間也會相互訪問。如果是http的介面,我們最方便的是使用localhost帶地本機的ip。不過結合docker容器後出現了問題。docker容器中localhost表示容器的ip位址。不是宿主機ip。其實docker容器執行的時候有h...

docker 啟動kafka宿主機無法訪問

先看我啟動命令 docker run e tz asia shanghai privileged itd h single.com p 127.0.0.1 9092 9092 p 127.0.0.1 2181 2181 v d soft var soft name single.com test k...