国内服务器
亚洲服务器
欧洲服务器
北美洲服务器
南美洲服务器
大洋洲服务器
非洲服务器

首页>>IDC资讯

怎么解决docker容器无法通过IP访问宿主机问题

发表时间:2022-05-31 09:01:25

本文是关于怎么解决docker容器无法通过IP访问主机的问题。桂哥网络觉得很实用,就分享给大家参考,跟着桂哥网络看了看。

问题起源

在使用docker的过程中,不幸的是我需要访问docker容器中主机的端口80,它是从另一个容器的端口8080映射而来的。当我通过容器中的docker的桥172.17.0.1访问主机时,我发现了:

curl: (7)无法连接到172.17.0.1端口80:没有到主机的路由

查找问题原因

可以确认容器和主机之间有网络连接,因为可以ping通容器内部的主机:到172.17.0.1。

root @ 930d 07576 eef :/# ping 172 . 17 . 0 . 1

ping 172 . 17 . 0 . 1(172 . 17 . 0 . 1)56(84)字节数据。

来自172 . 17 . 0 . 1: icmp _ seq=1 TTL=64 time=0.130 ms的64字节也可以访问容器内部的其他内部和外部网络。

Iptables显示还允许docker容器访问:

#iptables - list|grepDOCKER

码头工人-隔离所有人-任何地方任何地方

任何地方任何地方

链接器(1参考)

链坞隔离(1篇参考文献)后,搜索了一些数据才发现这个问题。没有从容器到主机的主机网络请求路由-从其他容器发布的IP :端口。

解释

正如Docker社区表单所说,这是一个已知的错误。主机的80端口允许其他计算机访问它,但不允许该计算机的Docker容器访问它。防火墙规则一定要设置为允许此计算机的Docker容器访问它。

Gypark指出,在/etc/firewalld/zones/public . XML中添加防火墙规则可以避免这个问题。

rulefamily='ipv4 '

sourceaddress='172.17.0.0/16'/

接受/

/rule:注意这里的172.17.0.0/16可以匹配172.17.xx.xx IP段的所有IP。

然后重启防火墙:

在systemctlrestartfirewalld之后,您可以访问docker容器内部主机的端口80。

其它问题

其实,当我用vmware打开一个新的虚拟机,希望重现这个问题时,我发现新的虚拟机上没有类似的问题。也就是说容器可以通过172.17.0.1直接访问主机80端口,我查防火墙配置的时候没有看到172.17.xx.xx的白名单。

猜测是因为新虚拟机安装的docker是docker版本1.12.5,build 047e51b/1.12.5,也就是Red Hat从docker开源版本开发的版本,而之前的版本是Docker版本17.06.2-ce。Build cec0b72属于Docker-CE。可能docker版本有区别。红帽子顺便修正了已知Bug。

感谢阅读!本文关于“怎么解决码头工人集装箱无法通过IP访问主机的问题”在此分享。希望以上内容能帮助大家学到更多的知识。如果你觉得文章好,可以分享给更多人看!


上一篇 下一篇
最新文章

如何提高云服务器的安全系数

香港独立IP空间有什么优势

香港空间影响百度收录吗

为啥要租用美国VPS

VPS的缺点有哪些

香港vps作用在哪里

VPS的优点有哪些

外贸网站为啥选择美国vps

VPS能建多少个网站

VPS要如何选择位置

相关文章

linux服务器关机命令之间的区别有哪些

甚么是多IP网站集群?优势是甚么

网站301跳转域名解析 技巧分析来助力

怎么盘算视频直播的带宽,哪里可以租到大带宽

专线网络类型种类

国内不用备案cdn 有不用备案的服务器吗?

中国香港医院服务器厂家:提供高效可靠的医疗信息化解决方案

AI-Assisted Chat: Quick and Easy with ChatGPT Tool

圣多美和普林西比服务器快吗,圣多美和普林西比速度不错吗?

美国促销服务器:提升业务效力的不可错过机会

X

截屏,微信识别二维码

微信号:muhuanidc

(点击微信号复制,添加好友)

打开微信

微信号已复制,请打开微信添加咨询详情!