具名和匿名挂载
# 匿名挂载
-v 容器内路径
docker run -d -P --name nginx01 -v /etc/nginx nginx
# 查看所有的volume的情况
[root@master ~]# docker volume ls
DRIVER VOLUME NAME
local d7dedc6c8032d006ae5a59cb298c9a5c94110de61eb8b221277b837a247127c3
# 这里发现,这种就是匿名挂载,我们在-v 只写了容器内的路径,没有写容器外的路径!
# 具名挂载
[root@master ~]# docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx nginx
13e4fc3061d3574187b7e7725b24ad15e52555721f2d8eaf20f1b719e29d8624
[root@master ~]# docker volume ls
DRIVER VOLUME NAME
local juming-nginx
# 通过 -v 卷名:容器内路径
# 查看一下这个卷
所有的docker容器内的卷,没有指定目录的情况下都是在 /var/lib/docker/volumes/xxx/_data
我们通过具名挂载可以方便的找到我们的一个卷,大多数情况在使用的是具名挂载
# 如何确定是具名挂载还是匿名挂载,还是指定路径挂载
-v 容器内路径 # 匿名挂载
-v 卷名:容器内路径 # 具名挂载
-v /宿主机路径::容器内路径 # 指定路径挂载
拓展:
# 通过 -v 容器内路径:ro rw 改变读写权限
ro readonly # 只读
rw readwrite # 可读可写
# 一旦设置了容器的权限,容器内对我们挂载出来的内容就有限定了!
docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx:rw nginx
# ro 只要看到ro就说明这个路径只能通过宿主机来操作,容器内部是无法操作的!