婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解如何解決docker容器無法通過IP訪問宿主機問題

詳解如何解決docker容器無法通過IP訪問宿主機問題

熱門標簽:外呼系統的經營范圍 智能電話機器人坐席 安陽ai電銷機器人軟件 云會外呼系統 申請400電話價格多少 廈門營銷外呼系統平臺 柳州市機器人外呼系統報價 外呼系統不彈窗 涪陵商都400電話開通辦理

問題起源

在使用 docker 的過程中我不幸需要在 docker 容器中訪問宿主機的 80 端口, 而這個 80 端口是另外一個容器 8080 端口映射出去的. 當我在容器里通過 docker 的網橋 172.17.0.1 訪問宿主機時, 居然發現:

curl: (7) Failed to connect to 172.17.0.1 port 80: No route to host

查找問題原因

可以確定的是容器與宿主機是有網絡連接的, 因為可以在容器內部通過 172.17.0.1 Ping 通宿主機:

root@930d07576eef:/# ping 172.17.0.1
PING 172.17.0.1 (172.17.0.1) 56(84) bytes of data.
64 bytes from 172.17.0.1: icmp_seq=1 ttl=64 time=0.130 ms

也可以在容器內部訪問其它內網和外網.

iptables 顯示也允許 docker 容器訪問:

# iptables --list | grep DOCKER
DOCKER-ISOLATION all -- anywhere       anywhere      
DOCKER   all -- anywhere       anywhere      
Chain DOCKER (1 references)
Chain DOCKER-ISOLATION (1 references)

之后在查找一些資料后發現這個問題:NO ROUTE TO HOST network request from container to host-ip:port published from other container.

解釋

正如 Docker Community Forms 所言, 這是一個已知的 Bug, 宿主機的 80 端口允許其它計算機訪問, 但是不允許來自本機的 Docker 容器訪問. 必須通過設置 firewalld 規則允許本機的 Docker 容器訪問.

gypark 指出可以通過在 /etc/firewalld/zones/public.xml 中添加防火墻規則避免這個問題:

<rule family="ipv4">
  <source address="172.17.0.0/16" />
  <accept />
</rule>

注意這里的 172.17.0.0/16 可以匹配 172.17.xx.xx IP 段的所有 IP.

之后重啟下防火墻:

systemctl restart firewalld

之后就可以在 docker 容器內部訪問宿主機 80 端口.

其它問題

實際上當我又用 vmware 新開了一臺虛擬機希望能重現這個問題的時候, 發現在新的虛擬機上居然沒有類似的問題. 也就是說容器可以直接通過172.17.0.1訪問宿主機 80 端口, 查看防火墻配置也沒看到有172.17.xx.xx的白名單.
猜測是由于在新的虛擬機安裝的 docker 是 Docker version 1.12.5, build 047e51b/1.12.5, 也就是 Red Hat 從 docker 開源版本遷出開發的版本, 而之前的是 Docker version 17.06.2-ce, build cec0b72 屬于 Docker-CE, 可能是 docker 版本有差異, Red Hat 順便把那個 Known Bug 修復了.

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:綏化 撫順 孝感 蕪湖 福州 南充 巴中 晉城

巨人網絡通訊聲明:本文標題《詳解如何解決docker容器無法通過IP訪問宿主機問題》,本文關鍵詞  詳解,如何,解決,docker,容器,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解如何解決docker容器無法通過IP訪問宿主機問題》相關的同類信息!
  • 本頁收集關于詳解如何解決docker容器無法通過IP訪問宿主機問題的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 文化| 五台县| 云梦县| 常山县| 云南省| 香格里拉县| 渝中区| 湘西| 三穗县| 铜梁县| 门头沟区| 寻甸| 萝北县| 四川省| 景泰县| 烟台市| 惠来县| 贡觉县| 呼和浩特市| 汨罗市| 鹤壁市| 朝阳县| 乌海市| 无为县| 布拖县| 永登县| 九江县| 临桂县| 马公市| 名山县| 阿克陶县| 弥勒县| 西乌| 武夷山市| 德江县| 工布江达县| 太湖县| 广宁县| 黑河市| 邵阳县| 平南县|