DockerCLI/docs/reference/commandline/volume_ls.md

203 lines
5.4 KiB
Markdown

---
title: "volume ls"
description: "The volume ls command description and usage"
keywords: "volume, list"
---
# volume ls
```markdown
Usage: docker volume ls [OPTIONS]
List volumes
Aliases:
ls, list
Options:
-f, --filter value Provide filter values (e.g. 'dangling=true') (default [])
- dangling=<boolean> a volume if referenced or not
- driver=<string> a volume's driver name
- label=<key> or label=<key>=<value>
- name=<string> a volume's name
--format string Format output using a custom template:
'table': Print output in table format with column headers (default)
'table TEMPLATE': Print output in table format using the given Go template
'json': Print in JSON format
'TEMPLATE': Print output using the given Go template.
Refer to https://docs.docker.com/go/formatting/ for more information about formatting output with templates
--help Print usage
-q, --quiet Only display volume names
```
## Description
List all the volumes known to Docker. You can filter using the `-f` or
`--filter` flag. Refer to the [filtering](#filtering) section for more
information about available filter options.
## Examples
### Create a volume
```console
$ docker volume create rosemary
rosemary
$ docker volume create tyler
tyler
$ docker volume ls
DRIVER VOLUME NAME
local rosemary
local tyler
```
### Filtering
The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
The currently supported filters are:
- dangling (boolean - true or false, 0 or 1)
- driver (a volume driver's name)
- label (`label=<key>` or `label=<key>=<value>`)
- name (a volume's name)
#### dangling
The `dangling` filter matches on all volumes not referenced by any containers
```console
$ docker run -d -v tyler:/tmpwork busybox
f86a7dd02898067079c99ceacd810149060a70528eff3754d0b0f1a93bd0af18
$ docker volume ls -f dangling=true
DRIVER VOLUME NAME
local rosemary
```
#### driver
The `driver` filter matches volumes based on their driver.
The following example matches volumes that are created with the `local` driver:
```console
$ docker volume ls -f driver=local
DRIVER VOLUME NAME
local rosemary
local tyler
```
#### label
The `label` filter matches volumes based on the presence of a `label` alone or
a `label` and a value.
First, let's create some volumes to illustrate this;
```console
$ docker volume create the-doctor --label is-timelord=yes
the-doctor
$ docker volume create daleks --label is-timelord=no
daleks
```
The following example filter matches volumes with the `is-timelord` label
regardless of its value.
```console
$ docker volume ls --filter label=is-timelord
DRIVER VOLUME NAME
local daleks
local the-doctor
```
As the above example demonstrates, both volumes with `is-timelord=yes`, and
`is-timelord=no` are returned.
Filtering on both `key` *and* `value` of the label, produces the expected result:
```console
$ docker volume ls --filter label=is-timelord=yes
DRIVER VOLUME NAME
local the-doctor
```
Specifying multiple label filter produces an "and" search; all conditions
should be met;
```console
$ docker volume ls --filter label=is-timelord=yes --filter label=is-timelord=no
DRIVER VOLUME NAME
```
#### name
The `name` filter matches on all or part of a volume's name.
The following filter matches all volumes with a name containing the `rose` string.
```console
$ docker volume ls -f name=rose
DRIVER VOLUME NAME
local rosemary
```
### Formatting
The formatting options (`--format`) pretty-prints volumes output
using a Go template.
Valid placeholders for the Go template are listed below:
Placeholder | Description
--------------|------------------------------------------------------------------------------------------
`.Name` | Volume name
`.Driver` | Volume driver
`.Scope` | Volume scope (local, global)
`.Mountpoint` | The mount point of the volume on the host
`.Labels` | All labels assigned to the volume
`.Label` | Value of a specific label for this volume. For example `{{.Label "project.version"}}`
When using the `--format` option, the `volume ls` command will either
output the data exactly as the template declares or, when using the
`table` directive, includes column headers as well.
The following example uses a template without headers and outputs the
`Name` and `Driver` entries separated by a colon (`:`) for all volumes:
```console
$ docker volume ls --format "{{.Name}}: {{.Driver}}"
vol1: local
vol2: local
vol3: local
```
To list all volumes in JSON format, use the `json` directive:
```console
$ 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"}
```
## Related commands
* [volume create](volume_create.md)
* [volume inspect](volume_inspect.md)
* [volume rm](volume_rm.md)
* [volume prune](volume_prune.md)
* [Understand Data Volumes](https://docs.docker.com/storage/volumes/)