列出 Docker 磁碟區
說明 | 列出磁碟區 |
---|---|
用法 | docker volume ls [選項] |
別名 | docker volume list |
說明
列出 Docker 已知的所有磁碟區。您可以使用 -f
或 --filter
旗標進行篩選。有關可用篩選選項的詳細資訊,請參閱篩選章節。
選項
選項 | 預設值 | 說明 |
---|---|---|
--cluster | API 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
篩選器會根據是否存在 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=yes
和 is-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
指令時,也會包含欄位標題。
以下範例使用沒有標題的模板,並以冒號 (:
) 分隔所有磁碟區的 Name
和 Driver
項目輸出
$ 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"}