通过yum快速安装Docker,启动一直报错:
ERROR: COMMAND_FAILED: '/sbin/iptables -t nat -D PREROUTING -m addrtype --dst-type LOCAL -j DOCKER' failed: iptables: No chai.....
ERROR: COMMAND_FAILED: '/sbin/iptables -t nat -D OUTPUT -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER' failed: i......
ERROR: COMMAND_FAILED: '/sbin/iptables -t filter -C FORWARD -j DOCKER-ISOLATION' failed: iptables v1.4.21: Couldn't load targ.......
问题所在:" ERROR: COMMAND_FAILED " 和 "iptables: No chain/target/match by that name " 可能是表示防火墙规则不存在或无法执行。这种情况可能发生在升级或更改防火墙配置之后。解决此问题的方法是检查防火墙规则是否存在或是否已更改,并重新配置规则以便允许Docker运行。可以通过命令“systemctl status firewalld”了解防火墙的状态和日志,然后尝试重新配置规则。另外,还可以暂时禁用防火墙以便排除此问题并测试Docker是否可以启动。
解决步骤:
1、首先关闭防火墙(iptables/firewalld)
iptables防火墙关闭命令:
service iptables stop
Firewalld防火墙关闭命令:
service firewalld stop
2、尝试启动Docker
systemctl start docker
启动没有报错,检查docker服务状态:
systemctl status docker
启动成功....!禁用防火墙后Docker启动成功,说明防火墙规则阻止了Docker的必要网络连接。启用防火墙时,需要注意允许Docker所需的网络流量,以便其可以正常工作。
3、设置防火墙规则
目前证实是因为防火墙影响的无法启动,需要设置防火墙中允许Docker默认网络并设置防火墙规则来启用防火墙并允许Docker访问网络。
启动防火墙:
systemctl start firewalld
将 Docker 网络区域添加到可信区域:
firewall-cmd --zone=trusted --add-interface=docker0 --permanent
重新加载防火墙规则:
firewall-cmd --reload
再次启动Docker:
systemctl start docker
检查服务状态:
systemctl status firewalld
systemctl status docker
active (running):运行中