Docker命令-volume

命令

docker volume

描述

Manage volumes
存储管理

用法

1
2
3
4
5
docker volume create [OPTIONS] [VOLUME]
docker volume inspect [OPTIONS] VOLUME [VOLUME...]
docker volume ls [OPTIONS]
docker volume prune [OPTIONS]
docker volume rm [OPTIONS] VOLUME [VOLUME...]

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Options:
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 local volumes
docker volume rm Remove one or more volumes

create Options:
--driver , -d Specify volume driver name, default is local
--label Set metadata for a volume
--name Specify volume name
--opt , -o Set driver specific options

inspect Options:
--format , -f Format the output using the given Go template

ls Options:
--filter , -f Provide filter values (e.g. 'dangling=true')
--format Pretty-print volumes using a Go template
--quiet , -q Only display volume names

prune Options:
--filter Provide filter values (e.g. 'label=<label>')
--force , -f Do not prompt for confirmation

rm Options:
--force , -f Force the removal of one or more volumes

--format
.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"}}

注意

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
$ docker volume create my_volume
$ docker run -itd --name test -v my_volume:/data nginx:1.20.1-alpine

# 创建一个100M的临时磁盘,指定UID和GID
$ docker volume create --driver local \
--opt type=tmpfs \
--opt device=tmpfs \
--opt o=size=100m,uid=1000,gid=1000 \
volume2
$ docker run -itd --name test2 -v volume2:/data nginx:1.20.1-alpine
$ sudo docker exec -it test echo test > /data/file
-bash: /data/file: Permission denied
# 注意如果提示权限不足,使用使用如下命令,即指定sh -c 'cmd'
$ docker exec -it test sh -c 'echo test > /data/file'
$ sudo docker exec -it test ls /data
file
# 查看挂载信息
$ docker volume inspect volume2
[
{
"CreatedAt": "2022-03-19T18:05:54+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/volume2/_data",
"Name": "volume2",
"Options": {
"device": "tmpfs",
"o": "size=100m,uid=1000,gid=1000",
"type": "tmpfs"
},
"Scope": "local"
}
]
# 对应的物理磁盘上的目录
$ docker volume inspect --format '{{ .Mountpoint }}' volume2
/var/lib/docker/volumes/volume2/_data
# 查看当前的volume
$ docker volume ls
DRIVER VOLUME NAME
local my_volume
local volume2
$ docker volume create test
# 显示空闲的volume
$ docker volume ls -f dangling=true
DRIVER VOLUME NAME
local test
$ docker volume ls -f name=volume
DRIVER VOLUME NAME
local my_volume
local volume2
$ docker volume ls --format "{{.Name}}, {{.Driver}}, {{.Mountpoint}}"
my_volume, local, /var/lib/docker/volumes/my_volume/_data
test, local, /var/lib/docker/volumes/test/_data
volume2, local, /var/lib/docker/volumes/volume2/_data

# 清理volume
$ docker volume prune
# 删除volume
$ docker volume rm my_volume