国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務(wù)器 > Web服務(wù)器 > 正文

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

2024-09-01 13:56:26
字體:
供稿:網(wǎng)友

問題起源

在使用 docker 的過程中我不幸需要在 docker 容器中訪問宿主機(jī)的 80 端口, 而這個(gè) 80 端口是另外一個(gè)容器 8080 端口映射出去的. 當(dāng)我在容器里通過 docker 的網(wǎng)橋 172.17.0.1 訪問宿主機(jī)時(shí), 居然發(fā)現(xiàn):

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

查找問題原因

可以確定的是容器與宿主機(jī)是有網(wǎng)絡(luò)連接的, 因?yàn)榭梢栽谌萜鲀?nèi)部通過 172.17.0.1 Ping 通宿主機(jī):

root@930d07576eef:/# ping 172.17.0.1PING 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

也可以在容器內(nèi)部訪問其它內(nèi)網(wǎng)和外網(wǎng).

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

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

之后在查找一些資料后發(fā)現(xiàn)這個(gè)問題:NO ROUTE TO HOST network request from container to host-ip:port published from other container.

解釋

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

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

<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 容器內(nèi)部訪問宿主機(jī) 80 端口.

其它問題

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到服務(wù)器教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 金阳县| 临西县| 承德市| 南平市| 黔东| 龙口市| 齐齐哈尔市| 雷山县| 太原市| 阿拉尔市| 九江县| 武穴市| 鸡东县| 徐水县| 镇江市| 天水市| 盐城市| 南郑县| 扶风县| 慈利县| 河北区| 吴堡县| 河津市| 东台市| 砚山县| 郯城县| 康乐县| 六枝特区| 牡丹江市| 棋牌| 南阳市| 桐柏县| 惠州市| 南皮县| 孟村| 星子县| 工布江达县| 彭泽县| 沭阳县| 栾城县| 迁西县|