1. 程式人生 > 其它 >具名掛載和匿名掛載

具名掛載和匿名掛載

一)匿名掛載: 不指定資料卷名

docker run -d --name nginx01 -v /etc/nginx nginx
檢視所有卷的情況

[root@xiaozhang1999 /]# docker volume ls
DRIVER    VOLUME NAME
local     21528584cb2995879cf914926f4ac1a63bc84401602b2e6b66136a9154138a1e
local     portainer_data

這裡發現:local 21528584cb2995879cf914926f4ac1a63bc84401602b2e6b66136a9154138a1e這種就是我們的匿名掛載、我們在-v的時候只寫了容器內的路徑、沒有寫容器外的路徑。

所有的docker容器內的卷、沒有指定目錄的請況下是在:/var/lib/docker/volumes/下
eg:docker inspect jumingnginx

二)具名掛載:指定資料卷名

docker run -d -p 3344:3344 --name nginx02 -v jumingnginx:/etc/nginx nginx

[root@xiaozhang1999 home]# docker run -d -p 3344:3344 --name nginx02 -v jumingnginx:/etc/nginx nginx
2e729f47e4998cb0ac7a7bb0ba7bbdde1955c8f0ded0d02c3b95098ad6fa69ae
[root@xiaozhang1999 home]# docker volume ls
DRIVER    VOLUME NAME
local     21528584cb2995879cf914926f4ac1a63bc84401602b2e6b66136a9154138a1e
local     jumingnginx
local     portainer_data

具名掛載的好處:通過具名掛載可以更方便的我們找到這個卷、大多數情況在使用的是"具名掛載"。
區分具名掛載和匿名掛載:
匿名掛載:-v 容器內路徑
具名掛載:-v 卷名:容器內路徑
指定路徑掛載:-v 宿主機路徑:容器路徑
擴充套件:

[root@xiaozhang1999 home]#docker run -d -:P --name=nginx02 -v juming-nginx:/etc/nginx:ro nginx
[root@xiaozhang1999 home]#docker run -d -:P --name=nginx02 -v juming-nginx:/etc/nginx:rw nginx

這裡的ro和rw代表讀寫許可權,ro表示只讀,rw表示讀和寫,對掛載出來的內容就進行了限制,ro表示只能通過宿主機進行改變,容器內無法操作。