执行docker-compose up -d时出现ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule

原因是因为防火墙关闭之后需要重启docker服务。

执行:

service docker restart

即可。

[root@fanruan bin]# ./finekey INFO : 2025/07/23 15:34:42 Reading config file /opt/ops/finekey/conf/finekey.yaml INFO : 2025/07/23 15:34:42 use default ip:192.168.100.120 INFO : 2025/07/23 15:34:42 192.168.100.120 use local exec INFO : 2025/07/23 15:34:42 exec sudo success INFO : 2025/07/23 15:34:42 node selinux status check pass got [Disabled] INFO : 2025/07/23 15:34:42 node root path acls check pass INFO : 2025/07/23 15:34:42 begin check config valid! INFO : 2025/07/23 15:34:42 The deployment mode is online INFO : 2025/07/23 15:34:42 over check config valid! INFO : 2025/07/23 15:34:42 node 192.168.100.120 check ~/data/fanruan_71df1430 path auto mount or not INFO : 2025/07/23 15:34:42 node 192.168.100.120 found ~/data/fanruan_71df1430 path auto mounted INFO : 2025/07/23 15:34:42 begin check net and port~ INFO : 2025/07/23 15:34:42 begin start server and bind ports in all nodes~ INFO : 2025/07/23 15:34:43 192.168.100.120 time: 2025-07-23/15:34:43 +0800 INFO : 2025/07/23 15:34:43 start check net config bip and fip INFO : 2025/07/23 15:34:43 [MTUChecker] interface ens192 mtu 1500. INFO : 2025/07/23 15:34:44 192.168.100.120 begin install docker~ INFO : 2025/07/23 15:34:44 skip add docker group to user root INFO : 2025/07/23 15:34:44 docker exist, docker client version:Docker version 26.1.4, build 5650f9b INFO : 2025/07/23 15:34:44 no need to check docker bin path for docker version [26.1.4] INFO : 2025/07/23 15:34:44 node 192.168.100.120 no need to check docker bin path for docker version [26.1.4] INFO : 2025/07/23 15:34:44 chosen docker version:Docker version 26.1.4, build 5650f9b INFO : 2025/07/23 15:34:44 docker already start! INFO : 2025/07/23 15:34:44 docker install success ERROR: 2025/07/23 15:34:44 create network fanruan_exporter_net failed, cmd : docker network create fanruan_exporter_net --subnet=10.17.0.0/16 --gateway=10.17.0.1 --opt com.docker.network.bridge.name=br-fanruan , error: res:Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-fanruan -j RETURN: iptables: No chain/target/match by that name. (exit status 1)) , err:exit status 1 ERROR: 2025/07/23 15:34:44 create exporter net failed, error: res:Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-fanruan -j RETURN: iptables: No chain/target/match by that name. (exit status 1)) , err:exit status 1 ERROR: 2025/07/23 15:34:44 install docker and repo error! please check check error log info! INFO : 2025/07/23 15:34:44 begin rollback deployed components ERROR: 2025/07/23 15:34:44 deployment fail, please check error log info and fix it! bye~
最新发布
07-24
### 解决Docker创建网络IP tables配置失败的问题 当遇到 `docker failed to create network docker_default error response from daemon failed to setup ip tables unable to enable` 错误,通常是由于系统防火墙IPtables 配置与 Docker 的需求冲突引起的。以下是可能的解决方案和相关说明: 1. **检查系统的防火墙设置** 系统防火墙可能会干扰 DockerIPtables 规则。可以通过以下命令检查并临禁用防火墙以验证问题是否与此相关: ```bash sudo systemctl status firewalld ``` 如果 `firewalld` 正在运行,可以尝试临禁用它: ```bash sudo systemctl stop firewalld ``` 禁用后重新启动 Docker 服务并尝试创建网络: ```bash sudo systemctl restart docker docker network create test_network ``` 2. **确保 IPtables 模块加载正确** 某些情况下,内核未正确加载必要的 IPtables 模块可能导致此问题。可以通过以下命令检查并加载所需模块: ```bash lsmod | grep ip_tables ``` 如果未找到相关模块,可以手动加载它们: ```bash sudo modprobe ip_tables sudo modprobe iptable_nat ``` 3. **清理现有的 IPtables 规则** 如果 IPtables 中存在冲突规则,可以尝试清除所有规则并重新初始化: ```bash sudo iptables -F sudo iptables -t nat -F ``` 清理完成后,重启 Docker 服务以重新应用默认规则: ```bash sudo systemctl restart docker ``` 4. **检查 Docker 的配置文件** Docker 的配置文件 `/etc/docker/daemon.json` 可能包含错误的参数,导致 IPtables 配置失败。打开该文件并确保以下内容正确: ```json { "iptables": true, "ip-masq": true } ``` 修改后重启 Docker 服务以应用更改。 5. **升级 Docker 和系统内核** 某些旧版本的 Docker 或系统内核可能存在兼容性问题。建议升级到最新稳定版本: ```bash sudo apt update sudo apt upgrade sudo apt install docker-ce docker-ce-cli containerd.io ``` 6. **检查 SELinux 配置(适用于 RHEL/CentOS)** 如果使用的是 RHEL 或 CentOS 系统,SELinux 可能会阻止 Docker 创建网络。可以通过以下命令临设置为宽松模式进行测试: ```bash sudo setenforce 0 ``` 如果问题解决,可以考虑永久修改 SELinux 配置。 7. **日志分析** 如果以上方法均无效,可以通过查看 Docker 和系统日志进一步排查问题: ```bash sudo journalctl -u docker.service dmesg | grep -i docker ``` 通过上述方法,通常可以有效解决 Docker 创建网络 IPtables 配置失败的问题[^1]。 ```python # 示例代码:检查 Docker 版本 import subprocess def check_docker_version(): result = subprocess.run(['docker', '--version'], stdout=subprocess.PIPE) return result.stdout.decode('utf-8') print(check_docker_version()) ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值