具名挂载和匿名挂载

一)匿名挂载: 不指定数据卷名

docker run -d --name nginx01 -v /etc/nginx nginx
查看所有卷的情况

[root@xiaozhang1999 /]# docker volume ls
DRIVER    VOLUME NAME
local     21528584cb2995879cf914926f4ac1a63bc84401602b2e6b66136a9154138a1e
local     portainer_data

这里发现:local 21528584cb2995879cf914926f4ac1a63bc84401602b2e6b66136a9154138a1e这种就是我们的匿名挂载、我们在-v的时候只写了容器内的路径、没有写容器外的路径。

所有的docker容器内的卷、没有指定目录的请况下是在:/var/lib/docker/volumes/下

eg:docker inspect jumingnginx

二)具名挂载:指定数据卷名

docker run -d -p 3344:3344 --name nginx02 -v jumingnginx:/etc/nginx nginx

[root@xiaozhang1999 home]# docker run -d -p 3344:3344 --name nginx02 -v jumingnginx:/etc/nginx nginx
2e729f47e4998cb0ac7a7bb0ba7bbdde1955c8f0ded0d02c3b95098ad6fa69ae
[root@xiaozhang1999 home]# docker volume ls
DRIVER    VOLUME NAME
local     21528584cb2995879cf914926f4ac1a63bc84401602b2e6b66136a9154138a1e
local     jumingnginx
local     portainer_data

具名挂载的好处:通过具名挂载可以更方便的我们找到这个卷、大多数情况在使用的是"具名挂载"。
区分具名挂载和匿名挂载:
匿名挂载:-v 容器内路径
具名挂载:-v 卷名:容器内路径
指定路径挂载:-v 宿主机路径:容器路径
扩展:

[root@xiaozhang1999 home]#docker run -d -:P --name=nginx02 -v juming-nginx:/etc/nginx:ro nginx
[root@xiaozhang1999 home]#docker run -d -:P --name=nginx02 -v juming-nginx:/etc/nginx:rw nginx

这里的ro和rw代表读写权限,ro表示只读,rw表示读和写,对挂载出来的内容就进行了限制,ro表示只能通过宿主机进行改变,容器内无法操作。

posted @ 2021-07-12 17:59  LanceYa  阅读(180)  评论(0)    收藏  举报