Docker具名挂载和匿名挂载
匿名挂载
无需指定主机挂载目录
-v 容器内路径
-P 随机指定端口
# 测试
docker run -d -P --name nginx01 -v /etc/nginx nginx
docker volume ls
DRIVER VOLUME NAME
local 0ca37488f3cddfd021789bd3ba99ff48a43d0fe83a1e666c78f32b5650a9f29b
local 4a3cda249705a22402eb48282dfd924bca60220dabe71215f648bfb07d0581fe
local 10da62f7c5e290565c13f87dd95fc223a8e2fc75c11fe3981e39eb127358086c
local b12e9e9ca05c6351af7ce9167de939fdabf78715550e2d7b2ac3440a25922fad
local d003355baa78f07c2e4d2e23755c88a3e2ef6b9351c74900566aa3786123184c
# 这里的就是匿名挂载 在-v只写了容器内的路径 没有写容器外的路径
具名挂载
# 测试
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
docker volume ls
DRIVER VOLUME NAME
local 0ca37488f3cddfd021789bd3ba99ff48a43d0fe83a1e666c78f32b5650a9f29b
local 4a3cda249705a22402eb48282dfd924bca60220dabe71215f648bfb07d0581fe
local 10da62f7c5e290565c13f87dd95fc223a8e2fc75c11fe3981e39eb127358086c
local aeec40cedbec8b516881e274248885090e4ff4313a0ce3eb9a45183c34a07791
local b12e9e9ca05c6351af7ce9167de939fdabf78715550e2d7b2ac3440a25922fad
local d003355baa78f07c2e4d2e23755c88a3e2ef6b9351c74900566aa3786123184c
local juming-nginx
-v 卷名:容器内路径
# 卷命令
docker volume --help
Usage: docker volume COMMAND
Manage volumes
Commands:
create 创建一个卷
inspect 查看卷信息
ls 查看所有卷情况
prune Remove all unused local volumes
rm 删除一个卷
# 测试
docker volume inspect juming-nginx
[
{
"CreatedAt": "2022-04-07T01:37:16Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data",
"Name": "juming-nginx",
"Options": null,
"Scope": "local"
}
]
# 所有的docker容器内的卷, 没有指定目录的情况下都是在 /var/lib/docker/volumes/xxx/_data
我们通过具名挂载可以方便的找到我们的一个卷 大多数情况都在使用具名挂载
# 区分具名挂载、匿名挂载、指定路径挂载
-v 容器内路径 # 匿名挂载
-v 卷名:容器内路径 # 具名挂载
-v /宿主机路径:容器内路径 # 指定路径挂载
扩展
# 通过 -v 容器内路径 : ro rw改变读写权限
ro readonly # 只读
rw readwrite # 读写
# 一旦设置了容器权限 容器对我们挂载出来的内容就有限定了
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
# ro 只要看到ro就说明这个路径只能宿主机操作 容器内部是无法操作的

浙公网安备 33010602011771号