docker启动容器关于防火墙报错

时间:2022-03-30 00:56:33

在重启docker工程时候出错:

[root@hadoop-alone ~]# docker start pad
Error response from daemon: driver failed programming external connectivity on endpoint pad (ac3282ee462def7bb285e5c1bde2da509ada2d7b21e662ab5f9b437d042ce88f): iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 18081 -j DNAT --to-destination 172.17.0.2:8080 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)
Error: failed to start containers: pad

解决思路:猜想是由于防火墙规则导致了docker内部子网与宿主机子网冲突

解决方法:

  1、先看能不能ping通网络。若能依次执行以下命令;

  2、杀掉所有有关docker的进程:

pkill docker

  3、清除防火墙nat规则:

iptables -t nat -F

  4、停掉docker0网卡:

ifconfig docker0 down

  5、删除docker0网络接口:

brctl delbr docker0

没有brctl命令的话安装一下:

yum install bridge-utils -y

  6、可不做,不知道啥意思,参数是开启守护进程

docker -d

  7、重启docker服务

systmctl restart docker

解决结果:成功解决