Docker匿名掛載和具名掛載的具體使用
數(shù)據(jù)卷volume
提到這個匿名掛在和具名掛載,其實要先普及一個知識,就是什么是volumes,這個volumes就是數(shù)據(jù)卷的意思。我們docker掛載會用到這個卷。
數(shù)據(jù)卷的用處就是一個可供一個或者多個容器使用的特殊目錄,他繞過UFS就是什么聯(lián)合文件系統(tǒng),提供了很多功能:
(1)數(shù)據(jù)卷可以多個容器共享或者重用
(2)對數(shù)據(jù)卷修改會立馬生效
(3)對數(shù)據(jù)卷的更新不會影響鏡像
(4)數(shù)據(jù)卷默認會一直存在,即使容器被刪除了(結(jié)合2,3點特別像nacos)
查看數(shù)據(jù)卷的命令可以用:
docker volume --help
實際上命令內(nèi)容也不多如下:

實際上創(chuàng)建volume不用之前去創(chuàng)建,你掛載的時候命名,找不到他就會去根據(jù)你給的名字的創(chuàng)建一個新的有名字而不是一串哈希碼的名字的數(shù)據(jù)卷volume。
匿名掛載和具名掛載
在前面的數(shù)據(jù)卷volume的知識補充下,實際上匿名掛在和具命掛載就能知道了,一個是沒給數(shù)據(jù)卷名字的掛載,一個是給了指定數(shù)據(jù)卷名字的掛載。
比如接著上次的掛載,我們是指定了指定路徑的掛載,其實我們可以更簡單掛載,連宿主機的指定路徑不給,直接-v掛載docker容器的路徑就可以。如下匿名掛載安裝nginx。
# 匿名掛載 -P 大寫的P, 映射隨機端口 -v 容器內(nèi)路徑 docker run -d -P --name nginx01 -v /etc/nginx nginx
實際上會返回一個哈希碼,這個就是匿名掛載的數(shù)據(jù)卷的名字,你根據(jù)這個哈希碼也可以找到對應的數(shù)據(jù)卷,對你來說是匿名的,實際人家還會給一個名字的。我們可以通過 volume ls命令來查看都有什么數(shù)據(jù)卷。
docker volume ls
那這個具名掛載就要指定數(shù)據(jù)卷,類似我們之前的指定路徑掛載,但是這個我們不適用具體的指定路徑而是數(shù)據(jù)卷的名字。
# VOLUME NAME 當前顯示為匿名數(shù)據(jù)卷, 在 -v 掛載的時候只寫了容器內(nèi)的路徑,沒有寫宿主機的路徑 # 具名掛載 # 通過 -v 卷名:容器內(nèi)路徑 docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
數(shù)據(jù)卷的位置
我們既然設置了具體的數(shù)據(jù)卷,且對容器進行了掛載,也知道數(shù)據(jù)卷的用處,那數(shù)據(jù)卷在哪里呢?畢竟掛載的東西都在那里,看一眼位置在哪省著被誤刪了。
實際他在docker的下面具體路徑是:
/var/lib/docker/volumes/xxxx/_data
我們可以cd到這個路徑下面看一下數(shù)據(jù)卷,像我就cd到第二個具名掛載nginx的數(shù)據(jù)卷目錄下面看一下具體結(jié)構(gòu)

總結(jié)一下我們掛載的方式都有哪些:
如何確定是具名掛載還是匿名掛載, 亦或是指定路徑掛載?
-v 容器內(nèi)路徑 # 匿名掛載
-v 數(shù)據(jù)卷名:/容器內(nèi)路徑 # 具名掛載
-v /宿主機路徑:/容器內(nèi)路徑 # 指定路徑掛載
# 通過 -v 容器內(nèi)路徑: ro rw 改變讀寫權(quán)限 # ro readonly 只讀 # rw readwrite 讀寫 # 如果設置了容器權(quán)限, 容器對掛載出來的數(shù)據(jù)就有權(quán)限限定了. docker run -d -P --name nginx04 -v juming-nginx:/etc/nginx:ro nginx docker run -d -P --name nginx04 -v juming-nginx:/etc/nginx:rw nginx # ro 只要看到ro就說明這個路徑只能通過宿主機來操作, 容器內(nèi)部是無法操作
到此這篇關于Docker匿名掛載和具名掛載的具體使用的文章就介紹到這了,更多相關Docker匿名掛載和具名掛載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
docker windows10 共享目錄掛載失敗的解決方案
這篇文章主要介紹了docker windows10 共享目錄掛載失敗的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
基于docker部署skywalking實現(xiàn)全鏈路監(jiān)控功能
這篇文章主要介紹了基于docker部署skywalking實現(xiàn)全鏈路監(jiān)控,skywalking提供了在很多不同的場景下用于觀察和監(jiān)控分布式系統(tǒng)的方式,文中給大家介紹如何快速部署skywalking全鏈路監(jiān)控,感興趣的朋友一起看看吧2022-03-03
刪除docker中沒有被使用的數(shù)據(jù)卷volume
發(fā)現(xiàn)docker占用宿主機的磁盤空間很大,這個時候如何來釋放這些數(shù)據(jù)卷占用的空間呢,通過執(zhí)行相關命令即可順利解決,下面小編給大家介紹下刪除docker中沒有被使用的數(shù)據(jù)卷volume,感興趣的朋友跟隨小編一起看看吧2023-01-01
Docker Desktop Vmmem內(nèi)存占用過高問題及完美解決方案
DockerDesktopVmmem內(nèi)存占用過高問題常見于其基于WSL運行類似虛擬機的機制,通過編輯.wslconfig文件限制WSL資源,可有效降低內(nèi)存占用,具體操作包括創(chuàng)建.wslconfig文件,調(diào)整內(nèi)存配置,并重啟Docker Desktop,需注意內(nèi)存設置不宜過小,以免影響Docker運行和容器穩(wěn)定性2024-09-09

