Docker具名挂载和匿名挂载
#匿名挂载
-v 容器内路径
-P 随机映射端口
docker run -d -P --name nginx01 -v /etc/nginx nginx
#查看所有的volume的情况
[root@iZ2zedtw714kk6kmn4p41qZ ~]# docker volume ls
local 3657563108ca2bdba900c2b329c8c0607ac7268ea0df3630c682663541f6bf03
#这里发现,这种就是匿名挂载,我们在-v的时候只写了容器内的路径,没有写容器外的路径
#具名挂载
[root@iZ2zedtw714kk6kmn4p41qZ ~]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
3715f7b1291339490262b73773c6f10ae6ef17178c788562b72cc1c8bba9b7af
[root@iZ2zedtw714kk6kmn4p41qZ ~]# docker volume ls
DRIVER VOLUME NAME
local 3657563108ca2bdba900c2b329c8c0607ac7268ea0df3630c682663541f6bf03
local juming-nginx
#通过-v 卷名:容器内路径
#查看一下这个卷
所有的docker容器内的卷,没用指定目录的情况下都是在/var/lib/docker/volumes/xxxx/_data
我们通过具名挂载可以方便找到我们的一个卷,大多数情况下使用具名挂载
#如何确定是具名挂载还是匿名挂载,还是指定路径挂载
-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v /宿主机路径:容器内路径 #指定路径挂载
拓展:
#通过 -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 只要看到ro就说明这个路径只能通过宿主机来操作,容器内部是无法操作的