本文最后更新于 2024-08-27,文章内容可能已经过时。

问题描述

使用dokcer命令docker-compose up -d 启动容器时报错:

ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-2acd1c59bwud -j RETURN: iptables: No chain/target/match by that name.

原因分析

在centos系统运行docker时发现,防火墙状态发生变化的时候,docker之间的网络通信会收到影响。在宿主机上配置到容器的NAT(docker run -p)时,Docker会自动配置宿主机的防火墙NAT规则,但是这些规则并不会持久化到防火墙配置文件,重启防火墙后这些规则都将消失,直接导致运行的容器访问失效,因此,Docker无法设置容器的IP地址。

解决方案

最简单的方法:重启docker,让docker的规则重新加载一遍

service docker restart