Docker 卷 LS

描述列出卷
用法docker volume ls [OPTIONS]
别名
docker volume list

描述

列出 Docker 已知的所有卷。您可以使用-f--filter旗。请参阅 过滤 部分了解更多信息 有关可用筛选条件选项的信息。

选项

选择违约描述
--clusterAPI 1.42+ Swarm 仅显示集群卷,并使用集群卷列表格式
-f, --filter提供筛选条件值(例如dangling=true)
--format使用自定义模板格式化输出:
'table':以带有列标题的表格格式打印输出(默认)
'table TEMPLATE':使用给定的 Go 模板
以表格格式打印输出'json':以 JSON 格式
打印'TEMPLATE':使用给定的 Go 模板打印输出。
有关使用模板设置输出格式的更多信息,请参阅 https://docs.docker.com/go/formatting/
-q, --quiet仅显示卷名称

例子

创建卷

$ docker volume create rosemary

rosemary

$ docker volume create tyler

tyler

$ docker volume ls

DRIVER              VOLUME NAME
local               rosemary
local               tyler

筛选 (--filter)

筛选标志 (-f--filter) 格式为 “key=value”。如果还有更多 than 一个 filter,然后传递多个标志(例如--filter "foo=bar" --filter "bif=baz")

当前支持的筛选器包括:

  • dangling (布尔值 - true 或 false,0 或 1)
  • driver(卷驱动程序的名称)
  • 标签 (label=<key>label=<key>=<value>)
  • name (卷的名称)

悬空

dangling筛选未被任何容器引用的所有卷上的匹配项

$ docker run -d  -v tyler:/tmpwork  busybox

f86a7dd02898067079c99ceacd810149060a70528eff3754d0b0f1a93bd0af18
$ docker volume ls -f dangling=true
DRIVER              VOLUME NAME
local               rosemary

司机

driverfilter 根据卷的驱动程序匹配卷。

以下示例匹配使用local司机:

$ docker volume ls -f driver=local

DRIVER              VOLUME NAME
local               rosemary
local               tyler

标签

labelfilter 根据是否存在label单独或 一个label和一个值。

首先,创建一些卷来说明这一点;

$ docker volume create the-doctor --label is-timelord=yes

the-doctor
$ docker volume create daleks --label is-timelord=no

daleks

以下示例筛选条件将is-timelord标签 无论其价值如何。

$ docker volume ls --filter label=is-timelord

DRIVER              VOLUME NAME
local               daleks
local               the-doctor

如上面的示例所示,两个卷is-timelord=yesis-timelord=no返回。

对两者进行筛选key value生成预期结果:

$ docker volume ls --filter label=is-timelord=yes

DRIVER              VOLUME NAME
local               the-doctor

指定多个标签筛选条件会生成 “and” 搜索;所有条件 应该满足;

$ docker volume ls --filter label=is-timelord=yes --filter label=is-timelord=no

DRIVER              VOLUME NAME

名字

namefilter 匹配项的全部或部分卷名称。

以下筛选条件匹配名称中包含rose字符串。

$ docker volume ls -f name=rose

DRIVER              VOLUME NAME
local               rosemary

设置输出格式 (--format)

格式选项 (--format) pretty-prints 卷输出 使用 Go 模板。

下面列出了 Go 模板的有效占位符:

占 位 符描述
.Name卷名称
.Driver音量驱动器
.Scope卷范围 (本地、全局)
.Mountpoint主机上卷的挂载点
.Labels分配给卷的所有标签
.Label此卷的特定标签的值。例如{{.Label "project.version"}}

使用--format选项、volume ls命令将 完全按照模板声明的方式输出数据,或者在使用table指令也包括列标题。

以下示例使用不带标头的模板,并输出NameDriver条目之间用冒号 (:) 的所有卷:

$ docker volume ls --format "{{.Name}}: {{.Driver}}"

vol1: local
vol2: local
vol3: local

要以 JSON 格式列出所有卷,请使用json命令:

$ docker volume ls --format json
{"Driver":"local","Labels":"","Links":"N/A","Mountpoint":"/var/lib/docker/volumes/docker-cli-dev-cache/_data","Name":"docker-cli-dev-cache","Scope":"local","Size":"N/A"}