driver failed programming external connectivity on endpoint

启动docker容器报如下错误

Error response from daemon: driver failed programming external connectivity on endpoint mmysql (ea2bb5fc455b0d5255c435b5444214982249cbd373ad46b781557aec22c571f0):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNAT --to-destination 172.21.1.1:3306 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1))
Error: failed to start containers: mmysql

docker 服务启动的时候,docker服务会向iptables注册一个链,以便让docker服务管理的containner所暴露的端口之间进行通信

命令iptables -L可以查看iptables 链

如果你删除了iptables中的docker链,或者iptables的规则被丢失了(例如重启firewalld),docker就会报如上错误

只需要重启docker服务即可

原文地址:https://www.cnblogs.com/paper-man/p/13284671.html