docker volume ls
Estimated reading time: 5 minutesEdge only: This is the CLI reference for Docker CE Edge versions. Some of these options may not be available to Docker CE stable or Docker EE. You can view the stable version of this CLI reference or learn about Docker CE Edge.
Description
List volumes
API 1.21+
The client and daemon API must both be at least
1.21
to use this command. Use the docker version
command on the client to check
your client and daemon API versions.
Usage
docker volume ls [OPTIONS]
Options
Name, shorthand | Default | Description |
--filter , -f |
Provide filter values (e.g. ‘dangling=true’) | |
--format |
Pretty-print volumes using a Go template | |
--quiet , -q |
Only display volume names |
Parent command
Command | Description |
---|---|
docker volume | Manage volumes |
Related commands
Command | Description |
docker volume create | Create a volume |
docker volume inspect | Display detailed information on one or more volumes |
docker volume ls | List volumes |
docker volume prune | Remove all unused volumes |
docker volume rm | Remove one or more volumes |
Extended description
List all the volumes known to Docker. You can filter using the -f
or
--filter
flag. Refer to the filtering section for more
information about available filter options.
Examples
Create a volume
$ 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>
orlabel=<key>=<value>
) - name (a volume’s name)
dangling
The dangling
filter matches on all volumes not referenced by any containers
$ 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:
$ 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;
$ 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.
$ 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:
$ 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;
$ 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.
$ 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:
$ docker volume ls --format "{{.Name}}: {{.Driver}}"
vol1: local
vol2: local
vol3: local