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

docker启动容器失败:No chain/target/match by that name._第1张图片

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可能需要重新启动系统。

你可能感兴趣的:(运维部署,docker,容器,运维)