docker 排错:容器无法删除掉 和 Endpoint 已经存在

使用 Docker 服务运行应用工程时,在代码更新过程中,会涉及到容器的删除和重新创建的过程。在操作过程中,发现 docker 服务无法正常删除掉;以下记录排错和操作过程。

一、处理步骤1:删除容器,重新创建

1、删除容器

docker stop mysql
docker rm mysql

没有提示错误消息;但是在message日志文件中,提示“container kill failed because of 'container not found' or 'no such process”。再次使用docker ps 命令检查,发现 mysql 工程容器还是存在。

2、强制删除容器

docker rm -f 73cfe6fcb8aa

3、重新创建容器(失败报错 )

docker run -d --name=mysql mysql
报错消息:
/usr/bin/docker-current: Error response from daemon: service endpoint with name mysql already exists

二、处理步骤2:删除Endpoint,新建容器

Endpoint 可以理解为虚拟网卡,是成对存在的;一端连接在容器内部的网络沙盒,一端连接docker 服务的网络驱动模式(可以理解为虚拟交换机)。

1、首先我们要确定当前主机中有几种交换机。

docker network ls

2、确定 Endpoint 是创建在哪个交换机上

docker network inspect host(network_name) |grep "container_name"

3、断开网络交换机和容器的连接

docker network disconnect --force host(network_name) mysql(container_name)

4、重新创建容器(成功)

docker run -d --name=mysql mysql

三、原因分析

在 Github 上找到了一些关于这个问题的说明,这个问题应该是 Docker服务的一个bug;可以重启一下 Docker 服务暂时解决。
如果要彻底解决请将 Docker 服务的版本升级到1.18以上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值