背景:
生产环境需要用docker发布新的应用,结果docker启动失败,报了iptables异常
先说导致这个问题的原因:
firewall是基于iptables工具来管理防火墙,docker 使用iptables 来实现网络隔离。docker 默认使用 bridge 网桥模式来实现容器的网络。
dockerd 会在 iptables 建立 docker 链来设置所有的规则。但是这些规则并不会持久化到firewall配置文件,重启firewall后这些规则都将消失,直接导致运行的容器访问失效。
解决方法:
重启docker服务, 会自动自动加载iptables规则
systemctl restart docker