Centos 7 docker 启动容器 iptables 报 No chain/target/match by that name

启动一个有 nat 映射端口的容器时,iptables 报 No chain/target/match by that name

找了N多网站和官方issue后,还是没找到真正的解决方法,网上到处转载的只是分析了原因,并没有明确的解决方案,为此与同事通宵加班终于解决了这个问题。

找到系统的/etc/sysconfig/iptables ,如果没有用以下命令保存一下,然后查看里边的内容

发现内容如下

查看启动容器的报错信息发现-A DOCKER DOCKER链,但在iptables文件里并没有找到,

由于之前在自己的系统(archlinux)学习使用docker时并没遇到这问题,

所以马上去看了下自己系统里的iptables的文件,

内容如下

对比后以去掉不相关的规则,以现*nat规则里有以下的对于docker的配置

*filter 规则里对docker的配置如下

去掉不相关规则后的配置文件如下(可以直接用):

然后再加上自己服务器的过滤规则,合并后覆盖到Centos 7的 /etc/sysconfig/iptables 文件

重启iptables 服务

两次启动对应docker容器,

发现容器启动成功,虽然有警告,但并不影响容器的使用

1 1 收藏 1 评论

关于作者:星痕

程序员是值得尊敬的,程序员的双手是魔术师的双手。他们把枯燥无味的代码变成了丰富多彩的软件…… 个人主页 · 我的文章 · 1 ·     

相关文章

可能感兴趣的话题



直接登录
最新评论
  • 我也遇到这个问题,原因时启动docker服务时没有启动iptables服务导致的(有些docker需要再iptables开放有些端口)

    解决方法

    1.启动iptables服务

    2.重启docker服务

    3.重启docker容器

跳到底部
返回顶部