打开端口为啥no chain/target/match by that name

iptables -I IN_public_allow -p tcp --dport 8080 -j ACCEPT
docker也有开
也重启过
还是不行

img

可能是由于centos7里使用firewalld代替了iptables,导致iptables规则不生效或者缺少docker相关的链或目标1。你可以尝试以下几个步骤来解决:

查看iptables状态,查看是否正常,docker需要依赖该服务。

service iptables status

查看iptables规则是否生效

iptables -L

检查iptables文件中是否有docker项目,如果没有,可以手动添加或者重启docker服务。

文件路径是/etc/sysconfig/iptables

如果还不行,可能是因为内核不支持某些匹配选项,需要重新编译内核或者安装相应的模块。具体可以参考解决 docker 启动容器报 iptables: No chain/target/match by that name