四、具名和匿名掛載
匿名掛載
# -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就說明只能通過宿主機來改變了,容器內部無法操作了