新装 Docker 启动报错

在尝试通过yum安装Docker后,启动时遇到ERROR:COMMAND_FAILED,提示iptables链不存在。这通常由于防火墙配置变更导致。关闭防火墙后Docker能成功启动,说明防火墙规则阻碍了Docker的网络访问。为解决问题,需设置防火墙规则,将Docker网络接口添加到信任区域,并重新加载规则,确保Docker可以正常运行。

通过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):运行中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值