1.问题描述:服务器上开启端口时,修改了防火墙规则。重启之后发现docker某些应用意外停止,无法启动。
2.分析问题:首先对防火墙规则进行了修改,影响网络访问、端口开放等。使用 iptables -nvL命令查看各个rules多数据的处理。发现在FORWARD
这个chain中对DOCKER
这个自定义链处理了数据。然后在查看自定义的docker这个chain发现有的docker应用有正常的package和bytes,但是在8080端口的docker应用却没有。
到此问题已经很明显,我运行了以下命令
iptables -D INPUT -p tcp --dport 8080 -j ACCEPT
要解决问题需要了解下iptables以及与docker的关系,这里直接放链接。里面讲的很清楚。
- iptables是什么
- iptables 与docker关系
2.1 iptables了解推荐:iptables详解
2.2 iptables 与 docker 关系 关系
那么问题如何解决呢?两种方法:
1.重启docker,重新建立docker自定义chain.
systemctl start docker
然后如果应用少或者有选择的重启应用
docker start 应用id
如果应用多,则运行用以下命令两次直接重启所有容器
docker start 'docker ps -a -q'
2.如果不想重启docker,那么久需要手动添加删除的docker自定义chain。