背景
公司最近前后端项目发布方式转型到容器化方式,docker的端口映射其实是通过iptables或者firewalld进行转发访问,而公司本身针对网络进行了策略访问,所以再发布的过程中出现了容器内部访问80端口可以,其他端口均提示“NO ROUTE TO HOST“。而查阅了baidu的相关资料,基本没有针对该问题具有比较好的解决方案
解决思路
docker container的桥接模式是通过内部 网络地址172.17.*.*,桥接到外部的docker0 进行到外网通讯的。查看桥接的内部Container 可以通过 docker network inspect bridge查看。
那么也就是说我们需要在主机的网络访问策略中增加外部的端口访问权限。而本身桥接他就只是进行了网络的转发,并未在路由规则中添加对应的访问。
解决方案
方式1.如果仅仅是开放某些端口访问(针对8765端口开放),可以通过 如下规则,(如果是firewalld ,写法上有区别)
ACCEPT tcp -- 172.17.0.0/16 0.0.0.0/0 tcp dpt:8765
方式2.如果是针对docker设置的端口进行全部开放,则在规则的上方增加
-A INPUT -i docker0 -j ACCEPT
转载请注明出处: https://www.cnblogs.com/dyft/articles/10058840.html