在安装Rancher时,发现其中一个节点一直是失败,经排查是因为Prometheus耗尽了磁盘空间,于是就将其所属的Volume删除,以便释放磁盘空间,但是在我重新设置mysql配置文件后,重新启动mysql时就会提示这个错误:docker: Error response from daemon: driver failed programming external connectivity

原因:
从目前的现象来看,是因为docker服务启动时定义的自定义链DOCKER在我配置firewall的时候,因为冲突被清掉了,此时只重启某个容器就会出现这个异常,如果要恢复自定义链DOCKER,只需要重启docker服务即可。

1
systemctl restart docker

firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与Docker产生冲突。当firewalld启动或者重启的时候,将会从iptables中移除DOCKER的规则,从而影响了Docker的正常工作。如果你在 Docker 启动之后再启动或者重启firewalld,此时就需要重启Docker服务才可以保证其正常使用。