docker启动容器失败:No chain/target/match by that name.

在这里插入图片描述

docker: Error response from daemon: driver failed programming external connectivity on endpoint influxdb (b3495b933146e19ffa4593b266e2f32efcd960ae9abfb18ee1408f232bd97d37):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8086 -j DNAT --to-destination 172.17.0.2:8086 ! -i docker0: iptables: No chain/target/match by that name.

最简单最粗暴的方法就是: systemctl restart docker
但是,正式环境注意啊,别把别人的服务弄崩溃了

这个错误通常是由于Docker与iptables交互时发生问题引起的。以下是解决此问题的可能步骤:

  1. 检查iptables是否可用:

    在终端中运行以下命令,确保iptables可用并未被禁用:

    sudo iptables --list
    

    如果iptables未安装,请安装它:

    • 在Debian/Ubuntu上:

      sudo apt-get install iptables
      
    • 在CentOS/RHEL上:

      sudo yum install iptables
      
  2. 重启Docker服务:

    尝试重新启动Docker服务,以确保所有更改都生效:

    • 在Ubuntu/Debian上:

      sudo service docker restart
      
    • 在CentOS/RHEL上:

      sudo systemctl restart docker
      
  3. 清理iptables规则:

    有时旧的iptables规则可能导致问题。尝试清理它们并重新运行Docker容器:

    sudo iptables -F
    
  4. 检查Docker网络:

    确保docker0网络存在。运行以下命令:

    ip a | grep docker0
    

    如果docker0不存在,请尝试重新创建它:

    sudo service docker stop
    sudo ip link del docker0
    sudo service docker start
    
  5. 检查SELinux(如果启用):

    如果您的系统启用了SELinux,它可能会限制Docker的操作。在这种情况下,可以通过将SELinux设置为宽容模式或禁用它来解决问题。请注意,禁用SELinux可能会对系统安全性产生影响,谨慎操作。

    检查SELinux状态:

    sestatus
    

    如果SELinux处于启用状态,可以尝试将其设置为宽容模式:

    sudo setenforce 0
    

    或者,完全禁用SELinux,编辑/etc/selinux/config文件并将SELINUX设置为disabled

    请注意,禁用SELinux可能需要重新启动系统。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT小辉同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值