Docker常见问题1: driver failed programming external connectivity on endpoint

在尝试使用`docker-compose up -d`启动服务时遇到错误,ERROR提示不能启动服务,原因是iptables在防火墙重启后删除了与Docker相关的规则。解决方案包括重启Docker服务和检查服务是否已正常开启。防火墙的变动可能导致Docker网络配置失效,需要确保Docker的网络规则能在iptables中正确设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

docker-compose up -d 启动服务时出现以下错误

ERROR: for product-1.0  Cannot start service product-1.0: driver failed programming external connectivity on endpoint product-1.0 (e48bf41b4103d1876e41755abd2a3d35474f206b78ec60dadb824a2093c615a8):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8107 -j DNAT --to-destination xxxx:8087 ! -i br-66f24db55be3: iptables: No chain/target/match by that name.

原因

经过确认,由于服务器最近存在防火墙的重启。
防火墙使用 iptables 进行数据过滤,建立在iptables之上,这可能会与docker产生冲突。当 防火墙 启动或者关闭的时候,将会从 iptables 中移除 docker的相关规则,从而无法正常使用Docker。

方案

1、重启docker,重启前考虑目前正在运行的服务启动命令中是否存在–restart=always, 若不存在,且比较重要的服务,重启docker会需要自行重启服务。

systemctl restart docker

2、检查相关服务是否已经正常开启。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值