# 匿名挂载
-v 容器内路径
[]# docker run -d -p 9090:80 --name nginx01 -v /etc/nginx nginx
# 查看所有卷(volume)情况
[]# docker volume ls
DRIVER VOLUME NAME
local 03e30acbd528baf22726c8e43f62ffca58ff6f9b3ec13ba29e745bf1ae10cc01
# 这里发现,这种就是匿名挂载,我们在 -v 只写了容器内路径。
# 具名挂载
-v 卷名:容器内路径
[]# docker run -d -p 9091:80 --name nginx02 -v test-nginx:/etc/nginx nginx
[]# docker volume ls
DRIVER VOLUME NAME
local 03e30acbd528baf22726c8e43f62ffca58ff6f9b3ec13ba29e745bf1ae10cc01
local test-nginx
# 查看一下这个卷
[]# docker volume inspect test-nginx
[
{
"CreatedAt": "2021-07-11T17:22:03+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/test-nginx/_data",
"Name": "test-nginx",
"Options": null,
"Scope": "local"
}
]
所有docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/xxxx/_data
我们通过具名挂在可以方便的找到我们的一个卷,大多数情况在使用 具名挂在
# 如何确定是具名挂在还是匿名挂在,还是指定路径挂在
-v 容器内路径 # 匿名挂在
-v 卷名:容器内路径 # 具名挂在
-v /宿主机路径:容器内路径 #指定路径挂在
拓展:
# 通过 -v 容器内路径:ro rw 改变读写权限
ro readonly # 只读
rw readwrite # 可读可写
# 一旦设置了容器的权限,容器对我们挂载出去的内容就有了限定
[]# docker run -d -p 9091:80 --name nginx02 -v test-nginx:/etc/nginx:ro nginx
[]# docker run -d -p 9091:80 --name nginx02 -v test-nginx:/etc/nginx:rw nginx
# ro 此路径只能通过宿主机进行操作,在容器内只能读取,无法做其它操作