docker启动容器失败:No chain/target/match by that name.
2024-01-09 11:56:49
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交互时发生问题引起的。以下是解决此问题的可能步骤:
-
检查iptables是否可用:
在终端中运行以下命令,确保iptables可用并未被禁用:
sudo iptables --list
如果iptables未安装,请安装它:
-
在Debian/Ubuntu上:
sudo apt-get install iptables
-
在CentOS/RHEL上:
sudo yum install iptables
-
-
重启Docker服务:
尝试重新启动Docker服务,以确保所有更改都生效:
-
在Ubuntu/Debian上:
sudo service docker restart
-
在CentOS/RHEL上:
sudo systemctl restart docker
-
-
清理iptables规则:
有时旧的iptables规则可能导致问题。尝试清理它们并重新运行Docker容器:
sudo iptables -F
-
检查Docker网络:
确保
docker0
网络存在。运行以下命令:ip a | grep docker0
如果
docker0
不存在,请尝试重新创建它:sudo service docker stop sudo ip link del docker0 sudo service docker start
-
检查SELinux(如果启用):
如果您的系统启用了SELinux,它可能会限制Docker的操作。在这种情况下,可以通过将SELinux设置为宽容模式或禁用它来解决问题。请注意,禁用SELinux可能会对系统安全性产生影响,谨慎操作。
检查SELinux状态:
sestatus
如果SELinux处于启用状态,可以尝试将其设置为宽容模式:
sudo setenforce 0
或者,完全禁用SELinux,编辑
/etc/selinux/config
文件并将SELINUX
设置为disabled
。请注意,禁用SELinux可能需要重新启动系统。
文章来源:https://blog.csdn.net/weixin_53742691/article/details/135402025
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!