根本原因:
docker 服务启动的时候,docker服务会向iptables注册一个链,以便让docker服务管理的容器所暴露的端口之间进行通信
通过命令 `iptables -L
可以查看iptables 链。查看链路,发现并没有相关端口的iptables 链
在开发环境中,如果你删除了iptables中的docker链,或者iptables的规则被丢失了(例如重启防火墙,笔者就是重启防火墙导致),docker就会报iptables error例如:iptables: No chain/target/match by that name
解决方案
重启docker服务,之后,正确的iptables规则就会被创建出来。再次查看iptables 链,相关链路已经出现,服务也正常启动。