如何删除所有 Docker 网络

Docker 是一个开源容器化平台,可让我们快速构建、测试和部署应用程序作为可在任何地方运行的便携式容器。
在本快速教程中,我们将展示如何删除 Docker 中所有未使用的网络。
此外,如何通过 ID 或者使用过滤器标志删除一个或者多个网络。

删除 Docker 网络

1. 删除一个或者多个网络

要删除一个或者多个 Docker 网络,请使用 docker network ls命令来查找要删除的网络的 ID。

$docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
107b8ac977e3        bridge              bridge              local
ab998267377d        host                host                local
h520032c3d31        jenkins-overlay     bridge              local
3bc81b63f740        none                null                local

找到要删除的网络后,使用 docker network rm命令后跟 NETWORK ID。
例如,要删除名为 jenkins-overlay 的网络,请运行:

$docker network rm h520032c3d31

如果我们收到类似于下图所示的错误,则表示现有容器使用网络。
要删除网络,我们必须先删除容器。

Error response from daemon: network jenkins-overlay id 4g5293268bb91ad2498b38b0bca970083af87237784017be24ea208d2233c5aa has active endpoints

2.删除所有未使用的网络

使用 docker network prune命令删除所有未使用的网络。

$docker network prune

系统会提示我们继续,使用 -f或者 --force标志绕过提示。

WARNING! This will remove all networks not used by at least one container.
Are you sure you want to continue? [y/N]

3. 使用过滤器移除网络

使用 docker network prune 命令,我们可以使用过滤标志 -filter根据条件删除网络。
但是,当前支持的过滤器是 untillabel
我们可以通过使用多个 --filter标志来使用多个过滤器。

例如,要删除超过 12 小时前创建的所有网络,请运行:

$docker network prune -a --filter "until=12h"
日期:2020-06-02 22:18:45 来源:oir作者:oir