本文摘自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如何运行项目
Docker镜像有什么用?
如何解决Docker内部访问不了宿主
Docker pull拉取镜像后存在哪里?
Docker使用沙箱机制对吗
Docker容器有几种状态
Docker可不可以搭建本地镜像仓库
Docker带ce和不带ce的区别
rpm方式安装Docker
Docker怎么修改已创建的容器端口
更多相关阅读请进入《Docker》频道 >>
转载请注明出处:木庄网络博客 » 如何解决docker内部访问不了宿主