问题
docker容器内不能访问外网,明明我已经启用了ip伪装和桥接网络模式。还是不能在容器内访问外面。新启动的容器也报如下错误:
docker0: iptables: No chain/target/match by that name
原因
前一天,在安装了Docker的那台宿主机器上面启动了firewall防火墙。然后,docker是在firewall启用之前安装的,iptables中的docker规则乱了。
解决
重启docker服务:
systemctl restart docker
这样再重启旧容器,旧容器就可以访问外网了。估计是重启docker服务后,会重建iptables转发规则吧。
总结
中小规模业务,能原生启动服务就不要上容器方式,也无需要微服务,反正中小规模业务没有动力维护微服务,单体极限证道挺好。