最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker 存儲卷(Volume)核心概念、類型與操作指南(最新整理)

 更新時間:2025年09月10日 14:32:58   作者:敲上癮  
Docker 存儲卷 是 Docker 容器中用于持久化存儲數(shù)據(jù)的獨立文件系統(tǒng)區(qū)域,它獨立于容器的聯(lián)合文件系統(tǒng),其生命周期可以完全獨立于創(chuàng)建它的容器,本文給大家介紹Docker 存儲卷(Volume)核心概念、類型與操作指南,感興趣的朋友一起看看吧

一、存儲卷概念

數(shù)據(jù)卷(Volumes)是 Docker 中持久化存儲數(shù)據(jù)的推薦方式,它獨立于容器生命周期,可以高效地在容器間共享數(shù)據(jù)。

什么是存儲卷?
  Docker 存儲卷 是 Docker 容器中用于持久化存儲數(shù)據(jù)的獨立文件系統(tǒng)區(qū)域。它獨立于容器的聯(lián)合文件系統(tǒng),其生命周期可以完全獨立于創(chuàng)建它的容器。簡單來說,可以把它理解成容器中的一個共享文件夾或外部硬盤,這個文件夾直接映射到主機(或其它遠程存儲)上的一個真實目錄。

為什么要使用存儲卷?

  1. 容器銷毀或誤操作等會導(dǎo)致數(shù)據(jù)丟失,而存儲卷就可以起到一個數(shù)據(jù)備份的作用。
  2. 宿主機和容器,容器和容器,它們之間文件系統(tǒng)是相互隔離的,要完成數(shù)據(jù)交互很麻煩,而存儲卷起到一個交通樞紐的功能,或者說相當(dāng)于一個“共享目錄”。

二、存儲卷分類

Docker 提供了三種方式將數(shù)據(jù)從宿主機掛載到容器中:
  管理卷(volume docker )。默認映射到宿主機的/var/lib/docker/volumes目錄下,只需要在容器內(nèi)指定容器的掛載點是什么,而被綁定宿主機下的那個目錄,是由容器引擎 daemon自行創(chuàng)建一個空的目錄,或者使用一個已經(jīng)存在的目錄,與存儲卷建立存儲關(guān)系,這種方式極大解脫用戶在使用卷時的耦合關(guān)系,缺陷是用戶無法指定那些使用目錄,臨時存儲比較適合;
  綁定數(shù)據(jù)卷(bind mount)。映射到宿主機指定路徑下,在宿主機上的路徑要人工的指定一個特定的路徑,在容器中也需要指定一個特定的路徑,兩個已知的路徑建立關(guān)聯(lián)關(guān)系。
  臨時數(shù)據(jù)卷(tmpfs mount).映射到于宿主機內(nèi)存中,一旦容器停止運行,tmpfs mounts 會被移除,數(shù)據(jù)就會丟失,用于高性能的臨時數(shù)據(jù)存儲。

2.1 管理卷

創(chuàng)建卷
方法一:Volume命令操作

命令清單:

  • docker volume create:創(chuàng)建存儲卷
  • docker volume inspect:顯示存儲卷詳細信息
  • docker volume ls: 列出存儲卷
  • docker volume prune:清理所有無用數(shù)據(jù)卷
  • docker volume rm:刪除卷,使用中的無法刪除

示例:

  • 注:docker volume create不加卷名稱,生成匿名存儲卷
  • 注:docker volume inspect支持查看多個存儲卷
  • 注:docker volume rmdocker volume prune-f選項表示強制刪除

方法二:-v 或者–mount 指定
docker run創(chuàng)建并啟動容器時添加-v--mount 都可以完成管理卷的創(chuàng)建和掛載
-v 選項
功能:完成目錄映射
語法:

docker run -v name:directory[:options]

參數(shù):

  • 第一個參數(shù):卷名稱
  • 第二個參數(shù):卷映射到容器的目錄
  • 第三個參數(shù):選項,如 ro 表示 readonly

示例:

效果:

–mount選項

功能:完成目錄映射
語法:

--mount '<key>=<value>,<key>=<value>'

關(guān)鍵參數(shù):

  • type:類型表示 bind, volume, or tmpfs
  • source,src:對于命名卷,這是卷的名稱。對于匿名卷,省略此字段
  • destination,dst,target:文件或目錄掛載在容器中的路徑
  • ro,readonly:只讀方式掛載

示例:

docker run -d --name myweb2 --mount 'src=myweb2,dst=/usr/share/nginx/html' nginx:1.24.0

效果和-v選項相同

  • 注意1:添加ro選項限制的是容器里的寫權(quán)限。
  • 注意2:容器刪除卷的數(shù)據(jù)不會刪除,除非用 docker volume rm 刪除。因為卷本身就是來保護數(shù)據(jù)的。
  • 注意3:卷共享。不同容器可以使用同一個卷,解決了容器與容器之間數(shù)據(jù)交互繁瑣的問題。

2.2 綁定數(shù)據(jù)卷

綁定卷 bind mount-v--mount 都可以完成綁定卷的創(chuàng)建
-v 選項
功能:完成卷映射
語法:

docker run -v name:directory[:options] ………

  • 注意1:-v選項下,如果宿主機沒有對應(yīng)的目錄,會自動創(chuàng)建,而–mount則會掛載失敗。
  • 注意2:與管理卷不同,容器目錄原有數(shù)據(jù)會被清空,同步成宿主機目錄下的數(shù)據(jù)。
  • 注意3:ro限制的是宿主機的寫操作。

–mount選項
功能:完成目錄映射
語法:

--mount '<key>=<value>,<key>=<value>'

關(guān)鍵參數(shù):

  • type: 類型表示 bind, volume, or tmpfs
  • source, src: 宿主機目錄,這個和管理卷是不一樣的
  • destination, dst,target: 文件或目錄掛載在容器中的路徑
  • ro,readonly: 只讀方式掛載

示例:

docker run -d --name=myweb3 --mount 
type=bind,src=/home/qsy/gitDocker/data/test2
,dst=/usr/share/nginx/html nginx:1.24.0

注意:在命令行中不能像這個把指令分行寫(必須寫在一行),這里只是方便展示。
效果同-v選項。

特性管理卷綁定卷
創(chuàng)建者Docker用戶自己
存儲位置Docker管理的區(qū)域用戶指定的任何目錄
控制權(quán)Docker用戶
移植性
典型用途數(shù)據(jù)庫數(shù)據(jù)、應(yīng)用程序產(chǎn)生的需要持久化的數(shù)據(jù)配置文件、源代碼、日志文件(在主機和容器間共享)
備份與遷移使用 docker volume 命令操作,相對簡單需要操作主機文件系統(tǒng),復(fù)雜度高

2.3 臨時數(shù)據(jù)卷

臨時卷 tmpfs:臨時卷數(shù)據(jù)位于內(nèi)存中,在容器和宿主機之外(僅在容器運行期間存在)。

局限性

  • 不同于管理卷和綁定卷,不能在容器之間共享 tmpfs 掛載
  • 這個功能只有在 Linux 上運行 Docker 時才可用

創(chuàng)建卷
方法一:
–tmpfs選項
功能:完成臨時卷映射
語法:

--tmpfs /app
  • 注意1:數(shù)據(jù)在宿主機內(nèi)存里,/app是容器目錄。如果該目錄不存在則會創(chuàng)建。
  • 注意2:該容器的目錄會被清空。
  • 注意3:當(dāng)容器重啟后,tmpfs目錄會被銷毀,或恢復(fù)成原來的樣子。

示例:

docker run -d --name=myweb4 --tmpfs /test1 nginx:1.24.0

方法二:
--mount選項
功能:完成目錄映射
語法:

--mount '<key>=<value>,<key>=<value>'

關(guān)鍵參數(shù):

  • type:類型表示 bind, volume, or tmpfs
  • destination,dst,target:掛載在容器中的路徑
  • tmpfs-sizetmpfs 掛載的大?。ㄒ宰止?jié)為單位)。默認無限制。
  • tmpfs-modetmpfs 的八進制文件模式。例如,700 或 0770。默認為 1777 或全局可寫。

示例:

docker run -d --name=myweb5 --mount type=tmpfs,dst=/usr/share/nginx/html nginx:1.24.1

三、MySQL災(zāi)難恢復(fù)

接下來我們演示把數(shù)據(jù)庫容器數(shù)據(jù)丟失,然后通過存儲卷恢復(fù)的過程,分為以下幾步:

  1. 掛載存儲卷
  2. 模擬數(shù)據(jù)生產(chǎn)
  3. 刪除數(shù)據(jù)庫容器
  4. 恢復(fù)數(shù)據(jù)
  5. 登錄mysql并查看數(shù)據(jù)是否恢復(fù)

創(chuàng)建mysql容器并掛載:

docker run -d --name 容器的名字 -v 宿主機目錄:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=數(shù)據(jù)庫密碼 mysql:版本號

模擬數(shù)據(jù)庫存儲:

刪除mysql容器

恢復(fù)數(shù)據(jù)(數(shù)據(jù)都在宿主機目錄下,再用同樣的方式掛載就行)

登錄數(shù)據(jù)庫查看數(shù)據(jù)是否恢復(fù):

四、存儲卷的局限性

  1. 數(shù)據(jù)生命周期與容器分離:這既是一個優(yōu)點,也是一個缺點。卷的生命周期獨立于容器,即使刪除了所有使用該卷的容器,卷及其數(shù)據(jù)仍然存在。它有效的保護了容器的數(shù)據(jù),但很容易導(dǎo)致“孤兒卷”或“僵尸卷”堆積,占用大量磁盤空間,如果不手動清理,會造成資源浪費。
  2. 可移植性挑戰(zhàn):卷本身在創(chuàng)建時是“空白”的,其內(nèi)容通常由容器在運行時填充。你不能像鏡像一樣,輕松地將一個包含數(shù)據(jù)的卷從一個環(huán)境(如開發(fā)機)直接“復(fù)制”或“遷移”到另一個環(huán)境(如生產(chǎn)服務(wù)器)。
  3. 備份和遷移流程復(fù)雜:備份一個正在被容器使用的活躍卷存在數(shù)據(jù)一致性的風(fēng)險(例如,數(shù)據(jù)庫文件可能在備份過程中被修改)。標(biāo)準的 Docker 命令沒有提供一鍵式的卷備份功能。
  4. 空間分配不靈活:Docker 卷默認使用宿主機的存儲空間,你無法像在虛擬機中那樣,輕松地為單個卷設(shè)置大小限制。一個失控的容器進程(例如,日志瘋狂輸出)可能會寫滿整個卷,進而占滿宿主機的磁盤空間,導(dǎo)致宿主機和其他容器都出現(xiàn)問題。
  5. 安全性與訪問控制:卷中的數(shù)據(jù)默認由容器的用戶(通常是 root)擁有和寫入。如果容器以特權(quán)模式運行或被攻破,攻擊者可以通過卷對宿主機文件系統(tǒng)造成破壞(盡管比綁定掛載更安全)。

到此這篇關(guān)于Docker 存儲卷(Volume)核心概念、類型與操作指南(最新整理)的文章就介紹到這了,更多相關(guān)Docker 存儲卷 Volume內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Windows系統(tǒng)下安裝docker窗口的配置過程

    在Windows系統(tǒng)下安裝docker窗口的配置過程

    相信大家都知道Docker有很多種安裝的選擇,其中支持最好的是Ubuntu系統(tǒng)。而且docker如果想在windows上運行必須借助docker-machine,這篇文章將給大家詳細的介紹在Windows系統(tǒng)上安裝docker窗口的配置過程,有需要的朋友們可以參考借鑒。
    2016-10-10
  • Docker搭建NetBox的實現(xiàn)示例

    Docker搭建NetBox的實現(xiàn)示例

    NetBox是一個開源的數(shù)據(jù)中心基礎(chǔ)設(shè)施管理和IP地址管理平臺,本文主要介紹了Docker搭建NetBox的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • docker安裝drone的實現(xiàn)示例

    docker安裝drone的實現(xiàn)示例

    Drone是一款基于Docker的持續(xù)集成和持續(xù)部署平臺,可以幫助開發(fā)者自動化構(gòu)建、測試和部署應(yīng)用程序,本文主要介紹了docker安裝drone的實現(xiàn)示例,感興趣的可以了解一下
    2023-12-12
  • Docker使用Dockerfile創(chuàng)建支持ssh服務(wù)自啟動的容器鏡像

    Docker使用Dockerfile創(chuàng)建支持ssh服務(wù)自啟動的容器鏡像

    這篇文章主要介紹了Docker使用Dockerfile創(chuàng)建支持ssh服務(wù)自啟動的容器鏡像,需要的朋友可以參考下
    2016-10-10
  • Docker移除鏡像幾種不同的方法實戰(zhàn)記錄

    Docker移除鏡像幾種不同的方法實戰(zhàn)記錄

    在Docker實戰(zhàn)中,合理刪除不再需要的鏡像,有助于釋放寶貴的磁盤空間,刪除Docker鏡像可以通過多種方式,包括刪除單個鏡像、強制刪除正在使用的鏡像、刪除未被任何容器引用的所有鏡像以及刪除所有鏡像等,需要的朋友可以參考下
    2024-11-11
  • Docker Compose 與 Harbor 私有倉庫詳解

    Docker Compose 與 Harbor 私有倉庫詳解

    本文將探討Docker Compose多容器編排工具與Harbor企業(yè)級私有倉庫的核心技術(shù),幫助讀者掌握從容器管理到鏡像安全存儲的完整解決方案,感興趣的朋友一起看看吧
    2025-06-06
  • Docker 配置阿里云容器服務(wù)操作

    Docker 配置阿里云容器服務(wù)操作

    這篇文章主要介紹了Docker 配置阿里云容器服務(wù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 鏡像倉庫?Harbor搭建和使用教程

    鏡像倉庫?Harbor搭建和使用教程

    本文給大家介紹鏡像倉庫?Harbor搭建和使用教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-01-01
  • firewalld防火墻開啟后無法啟動docker問題及解決

    firewalld防火墻開啟后無法啟動docker問題及解決

    文章描述了在Linux上開啟或重啟防火墻后,創(chuàng)建docker自定義網(wǎng)絡(luò)時出現(xiàn)的錯誤,原因是firewalld和docker在操作iptables時發(fā)生了沖突,文章提供了兩種解決辦法:1. 重啟Docker服務(wù);2. 讓Docker繞過firewalld
    2025-12-12
  • docker內(nèi)部ping和ip命令的使用方式

    docker內(nèi)部ping和ip命令的使用方式

    這篇文章主要介紹了docker內(nèi)部ping和ip命令的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論

长葛市| 平舆县| 林西县| 林口县| 治县。| 扎兰屯市| 平武县| 油尖旺区| 鲁甸县| 永宁县| 秦皇岛市| 饶平县| 东莞市| 凤冈县| 金乡县| 久治县| 宜黄县| 凭祥市| 桃源县| 天长市| 张掖市| 土默特左旗| 金川县| 松滋市| 昌都县| 彭山县| 福建省| 乌鲁木齐县| 安福县| 浏阳市| 新野县| 新平| 玉龙| 望城县| 汤阴县| 城步| 梓潼县| 津市市| 崇阳县| 余庆县| 湛江市|