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就说明这个路径只能宿主机操作 容器内部是无法操作的

posted @ 2022-04-07 14:26  teanxo  阅读(65)  评论(0)    收藏  举报