列出 Docker 磁碟區

說明列出磁碟區
用法docker volume ls [選項]
別名
docker volume list

說明

列出 Docker 已知的所有磁碟區。您可以使用 -f--filter 旗標進行篩選。有關可用篩選選項的詳細資訊,請參閱篩選章節。

選項

選項預設值說明
--clusterAPI 1.42+ Swarm 僅顯示叢集磁碟區,並使用叢集磁碟區列表格式
-f, --filter提供篩選值(例如 dangling=true
--format使用自訂範本格式化輸出
「table」:以表格格式列印輸出,包含欄位標題(預設)
「table 範本」:使用指定的 Go 範本以表格格式列印輸出
「json」:以 JSON 格式列印
「範本」:使用指定的 Go 範本列印輸出。
請參閱 https://docker-docs.dev.org.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

driver 篩選器會根據磁碟區的驅動程式來比對磁碟區。

以下範例會比對使用 local 驅動程式建立的磁碟區

$ docker volume ls -f driver=local

DRIVER              VOLUME NAME
local               rosemary
local               tyler

label

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 的磁碟區。

同時篩選標籤的 key *和* value,會產生預期的結果

$ 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磁碟區範圍(local,global)
.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"}