文章分为三部分:
- 什么是具名、匿名和指定路径挂载
- 匿名挂载
- 具名挂载
-v 容器内路径 #匿名挂载
-v 卷名 : 容器内路径 #具名挂载
-v 宿主机路径 : 容器内路径 #指定路径挂载
拓展:
宿主机路径 : 容器内路径 : ro 只读
宿主机路径 : 容器内路径 : rw 可读可写
如果是ro说明这个路径只能通过宿主机来操作,容器内部无法操作!
先看一下docker所有的卷的情况
然后启动一个容器用匿名挂载后再查看卷,volume name全是id的就是匿名挂载的卷
-v 只写容器内路径!
-v时只写了容器内的路径没有写容器外的路径,这种就是匿名挂载
-
具名挂载
再以具名挂载启动一个容器,看看区别,可以看到volume name变成了我们取的名字
-v 卷名:“容器内路径”就是具名挂载
docker volume ls
只是列出了所有的卷,而这些具体的卷在什么地方呢?
查一下我们具名挂载的卷,可以看到地址在/var/lib/docker/volumes/下面
注:所有docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/
既然都在/var/lib/docker/volumes/下,那我们去查看会和docker volume ls
列出的一致
具名挂载我们是将nginx里面/etc/nginx配置文件放到了这个卷,现在我们去查看这个卷下可以看到nginx的配置文件都被挂载过来了
通过具名挂载可以很方便的找到我们的一个卷,大多数情况下都使用的是具名挂载