四、具名和匿名挂载
匿名挂载
# -v 容器路径
[root@docker ~]# docker run -d -P --name nginx01 -v /etc/nginx nginx
#查看所有的volume的情况
[root@docker ~]# docker volume ls
[root@docker ~]# docker volume ls
DRIVER VOLUME NAME
local 0731add5926a866269c890add0c9761a0911a4033deff71d770827a6dbb1f01e
#这种发现,就是匿名挂载,我们在-v后只写了容器内的路径没有写容器外的路径
具名挂载:
[root@docker ~]# docker run -d -P --name nginx02 -v jvming-nginx:/etc/nginx nginx
2236cc3b320eff1c18bd6bfef885171de54c3b8bbdc5730e1d3e34749951be07
[root@docker ~]# docker volume ls
DRIVER VOLUME NAME
local jvming-nginx
#通过-v 卷名:容器内路径
#查看一下卷
[root@docker ~]# docker volume inspect jvming-nginx
所有docker容器内的卷,没有指定目录的情况下都是在“/var/lib/docker/volumes/*”
我们通过具名挂载可以方便我们找到我们的一个卷,大多数情况下我们使用的具名挂载
如何区分匿名、具名和指定路径挂载:
-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v 宿主机路径:容器内路径 #指定路径挂载
拓展:
#通过-v容器内路径,ro、rw 改变读写权限
一旦设定容器权限,容器对我们挂载出来的内容就有限定了
[root@docker ~]# docker run -d -P --name nginx02 -v jvming-nginx:/etc/nginx:ro nginx
[root@docker ~]# docker run -d -P --name nginx02 -v jvming-nginx:/etc/nginx:rw nginx
#ro 只要看到ro就说明只能通过宿主机来改变了,容器内部无法操作了