发布于2026-08-19 阅读(0)
扫一扫,手机访问
在这个实验中,你将学习如何通过使用 CODE_0 命令来有效管理你的 Docker 网络。我们将首先创建几个自定义网络,以模拟一个包含多个网络的真实场景。
创建这些网络后,你将学习如何列出并识别当前哪些网络未被使用。最后,你将练习使用 CODE_0 命令来删除这些未使用的网络,包括如何应用过滤器以进行更有针对性的清理。这种实践经验将使你具备保持 Docker 环境整洁和优化的技能。
在这一步中,你将学习如何在 Docker 中创建自定义网络。默认情况下,Docker 提供了三种网络:CODE0、CODE1 和 CODE_2。不过,你可以创建自己的自定义网络,以隔离容器并控制它们之间的通信方式。
要创建自定义网络,我们使用 CODE0 命令。让我们创建一个名为 CODE1 的桥接网络。
docker network create my-network-1
你应该会看到类似以下的输出,表明网络已成功创建:
现在,让我们再创建一个名为 CODE_0 的桥接网络。
docker network create my-network-2
同样,你应该会看到一个网络 ID 作为输出。
我们可以使用 CODE_0 命令列出所有可用网络,以此验证这些网络是否已创建。
docker network ls
输出将显示一个网络列表,其中包括默认网络以及我们刚刚创建的两个自定义网络(CODE0 和 CODE1)。
在这一步中,你将学习如何列出 Docker 网络,并识别当前没有被任何容器使用的网络。这对于清理你的 Docker 环境和释放资源非常有用。
在上一步中,我们已经使用 CODE_0 命令列出了所有网络。让我们再次运行该命令,查看当前状态。
docker network ls
输出会显示每个网络的网络 ID、名称、驱动程序和作用域。注意,我们创建的 CODE0 和 CODE1 网络也在列表中。
要识别未使用的网络,我们可以使用带有 CODE0 标志的 CODE1 命令。这个标志可以让我们查看哪些网络会被删除,但实际上并不会删除它们。
docker network prune --dry-run
该命令的输出将列出未连接到任何运行中容器且会被清理的网络。由于我们还没有将任何容器连接到 CODE0 或 CODE1,它们应该会出现在预演(dry run)的输出中。
让我们运行一个连接到 CODE0 的简单容器,看看这会如何影响 CODE1 的输出。我们将使用非常小的 CODE_2 镜像。首先,拉取该镜像:
docker pull hello-world
现在,使用这个镜像运行一个容器,并将其连接到 CODE0。CODE1 标志表示以分离模式(在后台)运行容器。
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
现在,如果你再次运行 CODE0,CODE1 和 CODE_2 都应该被列为待清理的网络,因为它们不再被使用。
在这一步中,你将学习如何使用 CODE_0 命令删除所有未使用的网络。该命令可用于清理 Docker 环境,通过删除当前未连接到任何容器的网络来释放资源。
在清理之前,让我们再次列出网络,查看当前存在哪些网络。
docker network ls
你应该会看到默认网络(CODE0、CODE1、CODE2)以及我们在第一步中创建的自定义网络(CODE3 和 CODE4)。由于我们在上一步中停止并删除了 CODE5 容器,现在 CODE6 和 CODE7 应该都未被使用。
要清理所有未使用的网络,只需运行不带任何标志的 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 并按回车键,继续进行清理操作。
输出将列出已删除的网络以及回收的总空间。
现在,让我们再次列出网络,确认 CODE0 和 CODE1 已被删除。
docker network ls
现在,你应该只会在列表中看到默认网络(CODE0、CODE1、CODE_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
你应该会在列表中看到 CODE0 和 CODE1。
要根据过滤器清理网络,我们在 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标志的该命令,是个十分有用的工具。它能帮助你预览哪些网络未连接到任何容器,进而确定哪些网络可以删除。在实际删除任何网络之前,这一步骤对于了解清理操作可能产生的影响而言,是至关重要的。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9