商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 如何使用 docker network prune 命令删除未使用的网络

如何使用 docker network prune 命令删除未使用的网络

  发布于2026-08-19 阅读(0)

扫一扫,手机访问

介绍

在这个实验中,你将学习如何通过使用 CODE_0 命令来有效管理你的 Docker 网络。我们将首先创建几个自定义网络,以模拟一个包含多个网络的真实场景。

创建这些网络后,你将学习如何列出并识别当前哪些网络未被使用。最后,你将练习使用 CODE_0 命令来删除这些未使用的网络,包括如何应用过滤器以进行更有针对性的清理。这种实践经验将使你具备保持 Docker 环境整洁和优化的技能。

创建一些自定义网络

在这一步中,你将学习如何在 Docker 中创建自定义网络。默认情况下,Docker 提供了三种网络:CODE0CODE1CODE_2。不过,你可以创建自己的自定义网络,以隔离容器并控制它们之间的通信方式。

要创建自定义网络,我们使用 CODE0 命令。让我们创建一个名为 CODE1 的桥接网络。

docker network create my-network-1

你应该会看到类似以下的输出,表明网络已成功创建:

现在,让我们再创建一个名为 CODE_0 的桥接网络。

docker network create my-network-2

同样,你应该会看到一个网络 ID 作为输出。

我们可以使用 CODE_0 命令列出所有可用网络,以此验证这些网络是否已创建。

docker network ls

输出将显示一个网络列表,其中包括默认网络以及我们刚刚创建的两个自定义网络(CODE0CODE1)。

列出网络以识别未使用的网络

在这一步中,你将学习如何列出 Docker 网络,并识别当前没有被任何容器使用的网络。这对于清理你的 Docker 环境和释放资源非常有用。

在上一步中,我们已经使用 CODE_0 命令列出了所有网络。让我们再次运行该命令,查看当前状态。

docker network ls

输出会显示每个网络的网络 ID、名称、驱动程序和作用域。注意,我们创建的 CODE0CODE1 网络也在列表中。

要识别未使用的网络,我们可以使用带有 CODE0 标志的 CODE1 命令。这个标志可以让我们查看哪些网络会被删除,但实际上并不会删除它们。

docker network prune --dry-run

该命令的输出将列出未连接到任何运行中容器且会被清理的网络。由于我们还没有将任何容器连接到 CODE0CODE1,它们应该会出现在预演(dry run)的输出中。

让我们运行一个连接到 CODE0 的简单容器,看看这会如何影响 CODE1 的输出。我们将使用非常小的 CODE_2 镜像。首先,拉取该镜像:

docker pull hello-world

现在,使用这个镜像运行一个容器,并将其连接到 CODE0CODE1 标志表示以分离模式(在后台)运行容器。

docker run -d --network my-network-1 hello-world

你会看到一个容器 ID 作为输出。

现在,让我们再次运行 CODE_0 命令。

docker network prune --dry-run

这一次,CODE0 不应该出现在待清理的网络列表中,因为它正在被运行中的 CODE1 容器使用。未被使用的 CODE_2 应该仍然会被列出。

要停止并删除 CODE0 容器,首先使用 CODE1 查找其 ID。

docker ps

然后,使用 CODE0 停止容器,并使用 CODE1 删除它。将 CODE2 替换为 CODE3 输出中的实际 ID。

docker stop 
docker rm 

现在,如果你再次运行 CODE0CODE1CODE_2 都应该被列为待清理的网络,因为它们不再被使用。

清理所有未使用的网络

在这一步中,你将学习如何使用 CODE_0 命令删除所有未使用的网络。该命令可用于清理 Docker 环境,通过删除当前未连接到任何容器的网络来释放资源。

在清理之前,让我们再次列出网络,查看当前存在哪些网络。

docker network ls

你应该会看到默认网络(CODE0CODE1CODE2)以及我们在第一步中创建的自定义网络(CODE3CODE4)。由于我们在上一步中停止并删除了 CODE5 容器,现在 CODE6CODE7 应该都未被使用。

要清理所有未使用的网络,只需运行不带任何标志的 CODE_0 命令。Docker 会提示你确认该操作。

docker network prune

你会看到一条请求确认的消息,如下所示:

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

输入 CODE_0 并按回车键,继续进行清理操作。

输出将列出已删除的网络以及回收的总空间。

现在,让我们再次列出网络,确认 CODE0CODE1 已被删除。

docker network ls

现在,你应该只会在列表中看到默认网络(CODE0CODE1CODE_2)。

使用过滤器清理未使用的网络

在这一步中,你将学习如何使用过滤器清理未使用的网络。过滤器允许你根据特定条件(如标签或创建时间)有选择地删除网络。

首先,让我们创建几个带有标签的新网络,以便演示过滤功能。我们将创建带有 CODE0 标签的 CODE1 和带有 CODE2 标签的 CODE3

docker network create --label env=dev network-a
docker network create --label env=test network-b

你应该会看到这两个命令输出的网络 ID。

现在,让我们列出网络,查看新创建的带有标签的网络。

docker network ls

你应该会在列表中看到 CODE0CODE1

要根据过滤器清理网络,我们在 CODE0 命令中使用 CODE1 标志。例如,要清理所有带有 CODE2 标签的未使用网络,我们可以使用过滤器 CODE3

让我们先进行一次预演(dry run),看看使用这个过滤器会清理哪些网络。

docker network prune --filter label=env=dev --dry-run

输出应该显示 CODE0 是会被清理的网络,因为它带有 CODE1 标签且当前未被使用。

现在,让我们实际清理带有 CODE_0 标签的未使用网络。

docker network prune --filter label=env=dev

你会被提示进行确认。输入 CODE_0 并按回车键。

输出将显示 CODE_0 已被删除。

让我们再次列出网络,确认 CODE0 已被删除,但 CODE1(带有 CODE_2 标签)仍然存在。

docker network ls

你应该会在列表中看到 CODE0,但看不到 CODE1

你还可以根据其他条件进行过滤,例如在特定时间之前创建的网络。不过,按标签过滤是管理网络的一种常见且有用的方法。

总结

在本次实验中,你学习了如何管理 Docker 网络,特别关注了识别和删除未使用的网络。你首先使用 CODE0 命令创建了自定义桥接网络,展示了如何在默认网络之外添加新网络。然后,你使用 CODE1 命令列出了所有可用网络,并验证了自定义网络的创建。

接着,你对如何识别未使用的网络进行了探索。你发现,CODE0命令,尤其是带有CODE1标志的该命令,是个十分有用的工具。它能帮助你预览哪些网络未连接到任何容器,进而确定哪些网络可以删除。在实际删除任何网络之前,这一步骤对于了解清理操作可能产生的影响而言,是至关重要的。

本文转载于:https://labex.io/zh/tutorials/docker-how-to-use-docker-network-prune-command-to-remove-unused-networks-555178 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注