具名挂载和匿名挂载

 

1,匿名挂载

直接  -v 容器路径(不指定主机路径)

[root@CentOs test]# docker run -d -P -v /etc/nginx --name nginx01 nginx
ea2ec1d1ace0f839292f0c03a14c2e470a35cc1bd07692260de7078c2cd981cd
[root@CentOs test]#

 

查看所有的volume(卷)的情况:

[root@CentOs test]# docker volume ls
DRIVER    VOLUME NAME
local     8fbce0de9f72a1df4efc21c43b86d803ac0063a7cf0e5474c8579916a818341c
local     a17a1bda8611d9b7a7395951a6007aae95dedccc318cff34e592e3b2a3d2f3ee
local     c8f02c0d29c3366a9524cea799c5756fd0aafb01d40ea4e6b77473944c74e76c
local     cbf06d2d8044d08465175eda76baac44e92f980bfc61f2d6f0a1f511c25b46a3
[root@CentOs test]#

 

我们发现,这就是匿名挂载,我们在-v时只写了容器内的路径,没有写容器外的路径!

2,具名挂载:

[root@CentOs test]# docker run -d -P --name nginx02 -v juming_nginx:/etc/nginx nginx
4dd0473a70def2ffcd3f83142b6700ebd0dcb6e9d0c4c35ef8f85b472bc27c8e
[root@CentOs test]# docker volume ls
DRIVER    VOLUME NAME
local     8fbce0de9f72a1df4efc21c43b86d803ac0063a7cf0e5474c8579916a818341c
local     a17a1bda8611d9b7a7395951a6007aae95dedccc318cff34e592e3b2a3d2f3ee
local     c8f02c0d29c3366a9524cea799c5756fd0aafb01d40ea4e6b77473944c74e76c
local     cbf06d2d8044d08465175eda76baac44e92f980bfc61f2d6f0a1f511c25b46a3
local     juming_nginx
[root@CentOs test]#

通过-v 卷名:容器内的路径

查看一下这个卷所在的位置

docker volume inspect 卷名

 

[root@CentOs ~]# docker volume inspect juming_nginx
[
    {
        "CreatedAt": "2022-03-20T11:43:41+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/juming_nginx/_data",
        "Name": "juming_nginx",
        "Options": null,
        "Scope": "local"
    }
]
[root@CentOs ~]#

由此可知,docker容器内的所有的卷,没有指定目录的情况下,都是在/var/lib/docker/volumes/xxx/_data下面

我们通过具名挂载可以方便的找到我们的一个卷,大多数情况下使用具名挂载

 

3,如何确信是具名挂载还是匿名挂载,还是指定路径挂载?

-v 容器内路径             匿名挂载

-v 卷名:容器内路径          具名挂载

-v /主机路径:容器指定路径        指定路径挂载

 

4,拓展:

通过-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就说明这个路径只能通过宿主机来改变,容器内是无法操作的)

 

posted @ 2022-03-20 12:12  屯子里唯一的架构师  阅读(169)  评论(0编辑  收藏  举报