Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker network prune 常用命令。

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 持续时间字符串进行计算,并相对于守护进程机器的时间。支持的日期格式化时间戳包括 RFC3339NanoRFC33392006-01-02T15:04:052006-01-02T15:04:05.9999999992006-01-02Z07:002006-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

删除一个或多个网络

推荐文档

相关文档

大家感兴趣的内容

随机列表