docker network 删除失败 has active endpoint

文章讲述了在使用docker-composedown时遇到网络删除失败,因为存在正在使用的container。解决方法包括检查并断开相关endpoint,确认无误后重启docker和docker-compose,以确保状态同步问题得到解决。

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

关于docker-compose down 时出现network 删除失败,存在endpoint 的问题
用inspect 查看 network是否存在 相关的endpoint-name 存在表示有正在使用它的container
如果有,用disconnect 来断连,再删除
往往是没有的,最终重启docker,再删除解决,原因估计是状态的同步 存在问题,未及时清楚关联记录。
操作步骤如下:

error while removing network: XXX has active endpoint
docker network inspect {network}获得{endpoint-name},即docker-compse.yml中的container_name

docker network inspect my-network
[
    {
        "Name": "my-network",
        "Id": "596c41e9de4b8e604ff0907a9975fb19b87fe9a32b7b3b14761521a4ca5ee803",
        "Created": "2023-12-03T14:11:24.384930596Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.23.0.0/16",
                    "Gateway": "172.23.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "7496537f896d847fe36c9adb6fdee2fbd8eb1d79b45301b965b34b94cd66d248": {
                "Name": "redis",
                "EndpointID": "3e75f795aa625a0f194434fba8405f4d166576952a789424fc633b9189ff278e",
                "MacAddress": "02:42:ac:17:00:04",
                "IPv4Address": "172.23.0.4/16",
                "IPv6Address": ""
            },
            "91f6c5951e3bb8334a489352f7e82e412f6858e017490cd8b646a53f992fafe2": {
                "Name": "minio",
                "EndpointID": "392f98e407304ccb0c738d8207135bd6430b64beb13ee01f8dd07a471a776de9",
                "MacAddress": "02:42:ac:17:00:03",
                "IPv4Address": "172.23.0.3/16",
                "IPv6Address": ""
            },
            "b45c6cd455c07877d8506b3d5af0883d5636d740c052fd957e93bc8c128b16ac": {
                "Name": "mysql8",
                "EndpointID": "23cf1fae340629d4902d9742f5947c928dd1af27d6ba9fbf87527b01d107d176",
                "MacAddress": "02:42:ac:17:00:05",
                "IPv4Address": "172.23.0.5/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "my-network",
            "com.docker.compose.project": "sg-exam",
            "com.docker.compose.version": "2.17.2"
        }
    }
]


docker network disconnect -f {network} {endpoint-name}

docker network disconnect -f my-network mysql8

docker network disconnect -f my-network minio

docker network disconnect -f my-network redis

docker network rm my-network 删除docker network

重启docker-compose up -d
关闭docker-compose down
发现进程依然存在,已经造成假死
docker进行stop,失败
最终,重启docker解决sudo service docker restart 然后再删除就可以成功了。

### 如何删除Docker中的Network删除 Docker 中的 Network,可以使用 `docker network rm` 命令。此命令允许用户移除不再需要的自定义网络。需要注意的是,默认的桥接网络(bridge)、主机网络(host)以及无网络(none)无法被删除。 #### 删除指定网络 通过以下命令可删除单个或多个自定义网络: ```bash docker network rm NETWORK_NAME_OR_ID ``` 如果一次想要删除多个网络,则可以在该命令后面连续追加多个网络名称或者ID[^3]。 #### 查看现有网络列表 在执行删除操作之前,通常会先列出当前所有的网络来确认目标网络是否存在及其确切名字或ID。可以通过下面这条指令实现这一目的: ```bash docker network ls ``` #### 过滤特定类型的网络 为了更加精确地定位到某些特殊属性下的网络比如基于驱动程序过滤出所有采用 bridge 驱动构建起来的网络们,我们可以加上额外参数来进行筛选: ```bash docker network ls --filter driver=bridge ``` #### 注意事项 - **确保没有活动容器连接至待删网络**:只有当没有任何活跃状态下的容器仍然挂载着某个给定的目标网络时,才能够成功将其销毁掉;否则将会收到错误提示告知存在依赖关系而阻止继续下去。 - **谨慎对待生产环境的操作**:正如提到过的那样,在实际业务场景里务必小心处理任何可能影响正常运转的动作,包括但不限于摧毁基础设施组件如这里讨论到的虚拟局域网结构等等[^2]。 #### 示例代码片段展示整个流程 假设我们有一个名为my_custom_network 的自定义网络,并且已经确认它上面没有任何正在使用的实例关联其中: 1. 列举所有可用网络以找到我们的目标对象: ```bash $ docker network ls ``` 2. 执行具体的删除动作针对刚才发现的那个叫做'my_custom_network'的东西: ```bash $ docker network rm my_custom_network ``` 以上就是关于如何利用Docker CLI工具集里面的network子模块下rm功能项完成对于定制化VLAN资源释放工作的详细介绍啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值