docker volume ls

描述列出卷
用法docker volume ls [選項]
別名
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.net.tw/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”。如果有多個過濾器,則傳遞多個標誌(例如,--filter "foo=bar" --filter "bif=baz"

目前支援的過濾器有:

  • dangling(布林值 - true 或 false,0 或 1)
  • driver(卷驅動程式名稱)
  • label (label=<key>label=<key>=<value>)
  • name(卷名)

dangling

dangling 過濾器匹配所有未被任何容器引用的卷

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

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

驅動程式

driver 過濾器根據卷的驅動程式進行匹配。

以下示例匹配使用 local 驅動程式建立的卷

$ docker volume ls -f driver=local

DRIVER              VOLUME NAME
local               rosemary
local               tyler

標籤

label 過濾器根據是否存在 labellabel 及其值進行匹配。

首先,建立一些捲來說明這一點;

$ 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 的兩個卷。

同時過濾標籤的 keyvalue 會產生預期的結果

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

DRIVER              VOLUME NAME
local               the-doctor

指定多個標籤過濾器會產生“與”搜尋;所有條件都應滿足;

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

DRIVER              VOLUME NAME

name

name 過濾器匹配卷名的全部或部分。

以下過濾器匹配所有名稱中包含 rose 字串的卷。

$ docker volume ls -f name=rose

DRIVER              VOLUME NAME
local               rosemary

格式化輸出 (--format)

格式選項(--format)使用 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"}