docker容器启动失败:Error response from daemon: driver failed programming external connectivity on endpoint

异常

正常走容器部署时出现iptables类的启动异常

docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 

[root@localhost ~]# docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management
598104652a191643cc0f50acf5a8d740e8969664e6602aacfb3d833598bb0b3c
docker: Error response from daemon: driver failed programming external connectivity on endpoint rabbitmq (0e410ced1ee85515548c08134a2d6a899e58765eec53a30d7ea12996829e19ec):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 15672 -j DNAT --to-destination 172.17.0.2:15672 ! -i docker0: iptables: No chain/target/match by that name.

嫌麻烦可以放大截图信息 

背景

在此之前走过官网的体验指令

# latest RabbitMQ 3.12
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management

由于run -it 进入到了容器内部无法关闭firewall,新建窗口关闭了 firewall,然后原窗口退出容器,容器自动删除

体验完成后正式开启容器开始报上述iptables相关异常

总结

描述:体验Docker容器时对防火墙firewalld进行了同步操作,发生上述报错,

原因:docker服务启动时定义的自定义链DOCKER,当 centos7 firewall 被清掉时,

firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。

解决方案

当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作,重启docker即可。

systemctl restart docker


 

docker: Error response from daemon: driver failed programming external connectivity on endpoint registry是指在启动Docker容器时出现的错误,错误信息提示驱动程序无法为注册的端点进行外部连接编程。这个错误通常表明Docker守护进程在尝试使用iptables命令进行端口映射时遇到了问题。 根据引用和引用,这个错误通常是由iptables规则中缺少某些链、目标或匹配项导致的。iptables是一个用于配置Linux内核防火墙的工具,它可以用来创建、修改和删除iptables规则。在这种情况下,Docker守护进程尝试使用iptables命令来创建一个用于端口映射的规则,但由于缺少某些必要的链、目标或匹配项,所以无法成功创建规则,最终导致了该错误的发生。 解决这个问题的方法有几种,可以尝试以下步骤来解决该问题: 1. 检查iptables配置:首先,确保iptables服务已经启动,并且配置正确。可以使用以下命令来检查iptables服务的状态和配置:`sudo service iptables status`。 2. 重新安装Docker:如果iptables配置正确,但问题仍然存在,可以尝试重新安装Docker。可以使用以下命令来卸载和重新安装Docker:`sudo apt-get remove docker-ce`和`sudo apt-get install docker-ce`。 3. 检查网络设置:还可以检查网络设置是否正确,并确保没有其他应用程序或进程占用了Docker所需的端口。可以使用`netstat`命令来检查端口的使用情况:`netstat -tuln`。 4. 更新Docker版本:如果问题仍然存在,可以尝试升级到最新版本的Docker。可以使用以下命令来更新Docker:`sudo apt-get update && sudo apt-get upgrade docker-ce`。 通过检查iptables配置,重新安装Docker,检查网络设置以及升级Docker版本,可以解决docker: Error response from daemon: driver failed programming external connectivity on endpoint registry的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [启动Docker容器报错docker: Error response from daemon: driver failed programming external ...](https://blog.csdn.net/qq_39691492/article/details/125006600)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [docker出现Error response from daemon: driver failed programming external connectivity on endpoint...](https://blog.csdn.net/weixin_47872288/article/details/120201096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值