1、docker network prune 简介
docker network prune
是用于清理未使用的Docker网络。当我们删除容器时,相关联的网络可能会被保留下来,而这些未使用的网络可能会占用系统资源。因此,使用docker network prune
命令可以删除所有未被使用的网络。
参考文档:https://docs.docker.com/engine/reference/commandline/network_prune/
2、docker network prune 语法
docker network prune [OPTIONS]
3、docker network prune 命令
1)过滤器(--filter)
docker network prune 命令可以用于清理未使用的 Docker 网络。在该命令中,可以通过过滤器(Filtering)指定要删除的网络。过滤器标志(--filter
)格式为 "键=值"。如果有多个过滤器条件,则需要传递多个过滤器标志(例如,--filter "foo=bar" --filter "bif=baz"
)。多个过滤器标志将组合成OR过滤器条件。
目前支持的过滤器条件包括:
- until ():只删除在给定时间戳之前创建的网络。
- label (label=、label==、label!=或label!==):只删除具有指定标签的网络或没有指定标签的网络。
until 过滤器支持 Unix 时间戳、日期格式化的时间戳或 Go 持续时间字符串进行计算,并相对于守护进程机器的时间。支持的日期格式化时间戳包括 RFC3339Nano
、RFC3339
、2006-01-02T15:04:05
、2006-01-02T15:04:05.999999999
、2006-01-02Z07:00
和 2006-01-02
。如果不提供 Z
或 +-00:00
时区偏移量,则会使用守护进程上的本地时区。当提供 Unix 时间戳时,请输入秒[.nanoseconds]
,其中秒是自1970年1月1日(UTC/GMT午夜)以来已经过去的秒数,不包括闰秒(也称为Unix纪元或Unix时间),可选的.nanoseconds
字段是长度不超过9位小数部分。
标签过滤器有两种格式:label=...
(label=
或 label=
=
),删除具有指定标签的网络;label!=...
(label!=
或 label!==
),删除没有指定标签的网络。
以下示例将删除5分钟之前创建的网络。请注意,系统网络(如 bridge、host 和 none)永远不会被清理:
docker network ls NETWORK ID NAME DRIVER SCOPE 7430df902d7a bridge bridge local ea92373fd499 foo-1-day-ago bridge local ab53663ed3c7 foo-1-min-ago bridge local 97b91972bc3b host host local f949d337b1f5 none null local docker network prune --force --filter until=5m Deleted Networks: foo-1-day-ago docker network ls NETWORK ID NAME DRIVER SCOPE 7430df902d7a bridge bridge local ab53663ed3c7 foo-1-min-ago bridge local 97b91972bc3b host host local f949d337b1f5 none null local
2)显示帮助信息
docker network prune --help
3)清理未使用的Docker网络
docker network prune
4)强制清理未使用的Docker网络(跳过确认步骤)
docker network prune -f
5)清理特定LABEL的Docker网络
docker network prune --filter "label=com.example.some-label"
4、命令选项
命令 | 描述 |
--filter | 提供过滤器值(例如,until=) |
--force , -f | 不提示确认 |
5、子命令
命令 | 描述 |
docker network connect | 将容器连接到网络 |
docker network create | 创建一个网络 |
docker network disconnect | 断开容器与网络之间的连接 |
docker network inspect | 显示一个或多个网络的详细信息 |
docker network ls | 列出所有网络 |
docker network prune | 删除所有未使用的网络 |
docker network rm | 删除一个或多个网络 |