Docker启动容器报错 iptables failed
Docker run启动容器报错 : iptables failed docker0 iptables: No chain/target/match by that name
原因
docker 服务启动的时候,docker服务会向iptables注册一个链,以便让docker服务管理的containner所暴露的端口之间进行通信
如果你删除了iptables中的docker链,或者iptables的规则被丢失了(例如重启firewalld),docker就会报iptables error例如:failed programming external connectivity … iptables: No chain/target/match by that name
fix方案
清空下ipables规则,重启docker 重新生成iptables规则链即可
要解决这个问题,只要重启docker服务,之后,正确的iptables规则就会被创建出来
# 查看iptables 链
iptables -L
# 查看启动容器名称: 如果正常启动docker容器会生产iptables转发规则链
#iptables -L | grep 容器名称
#清空(删除)iptables过滤表中的所有规则
iptables -t filter -F
#删除指定表中的所有链(如INPUT、OUTPUT、FORWARD)
iptables -t filter -X
# 重启docker服务
systemctl restart docker