如何解决docker内部访问不了宿主


本文摘自PHP中文网,作者WJ,侵删。

在防火墙开启的状态下,docker容器内部无法访问宿主机服务(能够访问非宿主机的其他局域网计算机的服务),解决方法:

1

2

3

1. 配置防火墙规则firewall-cmd --zone=public --add-port={port}/tcp --permanent,并重载防火墙规则firewall-cmd --reload

2. 启动容器时使用--net host模式

3. 关闭防火墙

_补充:由于容器内请求的源地址是使用的docker0网段的内网地址,宿主机防火墙无法识别来源为非宿主机网段的docker0网段的内网地址请求,将其标记为未知来源,于是对请求进行了拦截,可通过添加防火墙来源规则(docker容器默认内网网段为172.17.0.0/16):

1

2

3

<rule family="ipv4">

<source address="172.17.0.0/16" />

<accept /></rule>

进行解决或直接更改防火墙开放端口规则,即解决方法中的第1点进行解决,当然为了更方便,特别时服务个数特别多且端口变化比较快的时候,为了降低维护成本,在保证服务器安全的情况下推荐使用第2或第3点解决方法

阅读剩余部分

相关阅读 >>

Docker部署go的两种基础镜像

如何解决Docker安装时yum命令无效

怎么把文件放到Docker容器里

如何制作Docker镜像文件?

如何解决群晖nas中Docker套件查询注册表失败

如何查看Docker有哪些容器

如何解决Docker不能登录

pycharm如何调试Docker debug?

Docker容器无法删除怎么解决

linux怎么启动Docker服务

更多相关阅读请进入《Docker》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...