docker iptables 问题

1.问题如图所示

运行一个加端口的tomcat在这里插入图片描述

2 .分析原理

在网上查了很多资料,主要是因为在启动docker容器的时候或者做docker配置的时候,还对防火墙设置重新启动等配置
这样会清除docker的相关配置,导致在查询防火墙规则的时候显示不到docker的链,这时我想起在测试写的tomcat镜像时把防火墙关了。
iptables -L 查询iptables 链
docker iptables 问题_第1张图片
而docker容器的底层原理:
在启动docker的时候会自动在iptables中注册一个链,通过防火墙的链也可以找到其注册的信息,主要注册这些链,是docker中的容器为了暴露端口而使用的

具体原因是你删除了iptables中的链
删除链接的方式有很多种

重启firewalld防火墙即可对其清除,firewalld是centos7以上,iptables是centos6以下都会有,而firewalld的底层是涉及在iptables上的,在启动firewalld的时候会自动删除iptables链的相关链接
删除该链接的其他方式博主暂未遇到有特殊情况的,待发现
所以在涉及防火墙firewalld的命令或者是iptables中的命令的时候
小心删除其涉及docker的链
————————————————
版权声明:本文为CSDN博主「码农研究僧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_47872288/article/details/120201096

3.解决

重启docker容器即可
docker iptables 问题_第2张图片
然后就可以继续敲了

你可能感兴趣的:(docker,java,容器)