Docker 數據卷與文件掛載

Docker 數據卷與文件掛載的區別與管理指南

在 Docker 中,數據卷(Volume)和文件掛載(Bind Mount)是兩種常用的數據持久化方式。它們的主要目的是將容器內的數據保存到主機上,以便在容器重啟或刪除后數據不會丟失。本文將詳細介紹數據卷和文件掛載的區別、使用方法以及管理技巧。


目錄

  1. 數據卷與文件掛載的區別
  2. 數據卷的使用
    • 創建數據卷
    • 掛載數據卷
    • 查看數據卷
    • 刪除數據卷
  3. 文件掛載的使用
    • 掛載主機目錄
    • 掛載單個文件
  4. 數據卷與文件掛載的選擇
  5. 數據卷的高級管理
    • 備份數據卷
    • 恢復數據卷
    • 數據卷的權限管理
  6. 總結

數據卷與文件掛載的區別

特性數據卷(Volume)文件掛載(Bind Mount)
存儲位置Docker 管理的存儲區域(通常是 /var/lib/docker/volumes/主機上的任意目錄或文件
生命周期與容器解耦,容器刪除后數據卷仍然存在與主機目錄綁定,容器刪除后數據仍然存在
性能通常性能較好,適合頻繁讀寫性能依賴于主機文件系統
可移植性更適合跨主機遷移依賴于主機目錄結構,可移植性較差
管理方式通過 Docker CLI 或 API 管理直接通過主機文件系統管理
使用場景數據庫數據、應用程序日志等配置文件、代碼文件等

數據卷的使用

創建數據卷

使用 docker volume create 命令創建一個數據卷。

docker volume create my_volume

掛載數據卷

在運行容器時,使用 -v--mount 參數掛載數據卷。

使用 -v 參數
docker run -d \--name my_container \-v my_volume:/app/data \my_image
使用 --mount 參數
docker run -d \--name my_container \--mount source=my_volume,target=/app/data \my_image

查看數據卷

列出所有數據卷:

docker volume ls

查看數據卷的詳細信息:

docker volume inspect my_volume

刪除數據卷

刪除一個數據卷:

docker volume rm my_volume

刪除所有未使用的數據卷:

docker volume prune

文件掛載的使用

掛載主機目錄

將主機上的目錄掛載到容器中。

docker run -d \--name my_container \-v /path/on/host:/path/in/container \my_image

掛載單個文件

將主機上的單個文件掛載到容器中。

docker run -d \--name my_container \-v /path/on/host/file.txt:/path/in/container/file.txt \my_image

數據卷與文件掛載的選擇

  • 使用數據卷的場景

    • 需要持久化存儲大量數據(如數據庫數據)。
    • 需要跨容器共享數據。
    • 需要 Docker 管理數據的生命周期。
  • 使用文件掛載的場景

    • 需要掛載主機上的配置文件或代碼文件。
    • 需要直接編輯主機上的文件并實時同步到容器中。
    • 需要將主機上的特定目錄映射到容器中。

數據卷的高級管理

備份數據卷

將數據卷的內容備份到主機上的一個壓縮文件中。

docker run --rm \-v my_volume:/volume \-v /path/on/host:/backup \busybox \tar cvf /backup/backup.tar -C /volume .

恢復數據卷

將備份文件恢復到數據卷中。

docker run --rm \-v my_volume:/volume \-v /path/on/host:/backup \busybox \tar xvf /backup/backup.tar -C /volume

數據卷的權限管理

在掛載數據卷時,可以設置文件權限。

docker run -d \--name my_container \-v my_volume:/app/data:ro \  # 只讀掛載my_image

總結

  • 數據卷:適合需要 Docker 管理數據生命周期的場景,如數據庫數據、日志文件等。
  • 文件掛載:適合需要直接操作主機文件的場景,如配置文件、代碼文件等。

通過合理選擇數據卷和文件掛載,可以更好地管理 Docker 容器中的數據持久化和共享需求。希望本文能幫助你更好地理解和使用 Docker 數據卷!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73356.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73356.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73356.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

全面系統梳理多模態LLM對齊算法

1.alignment算法發展時間軸 2.MLMM alignment結構圖 3.目前alignment策略常見的損失函數形式 4.MLLM對齊數據構造與現有數據總結

廣告推薦算法 - 學習筆記

文章目錄 1、前言2、學習筆記2.1、什么是計算廣告系統? 1、前言 本篇博客,是我用來記錄學習廣告推薦算法的一些筆記和總結。 參考內容: 1、王喆:"深度"學習計算廣告 2、deepseek 2、學習筆記 2.1、什么是計算廣告系統…

ENSP學習day10

NAT地址轉換技術(一) NAT(Network Address Translation)地址轉換技術是一種在計算機網絡中常用的技術,在數據包從一個網絡傳輸到另一個網絡時,會對數據包中的源IP地址和目的IP地址進行修改的過程。這種技術…

數據分析中,文件解析庫解析內容樣式調整

CSV文件:使用Python標準庫中的csv模塊,通過簡單的文本解析來讀取數據。 Excel文件:使用專門的庫(如openpyxl、xlrd)來解析復雜的文件格式,或者使用pandas庫來簡化讀取過程。 在進行文件讀取后的格式調整時…

Swift 二分法求函數的近似解

在實際開發中會遇到一些工程問題,需要求解復雜函數方程的問題。使用傳統的數學方法比較難以處理。本文將使用二分法不斷獲取一個函數的近似解。 二分法:其基本思想是利用函數在某個區間內的連續性,通過不斷縮小區間范圍來逼近方程的解。 算法…

stanley 路徑跟蹤控制算法

文章目錄 寫在前面的話算法思路核心代碼1 路徑發布2 獲取車子當前位置3 預瞄路徑點4 計算航向誤差5 計算橫向誤差 完整控制代碼演示視頻 寫在前面的話 軌跡跟蹤 Trajectory Tracking 和 路徑跟蹤 Path Following 是機器人控制和自動駕駛領域中的兩個核心概念,盡管它…

Qt中通過QLabel實時顯示圖像

Qt中的QLabel控件用于顯示文本或圖像,不提供用戶交互功能。以下測試代碼用于從內置攝像頭獲取圖像并實時顯示: Widgets_Test.h: class Widgets_Test : public QMainWindow {Q_OBJECTpublic:Widgets_Test(QWidget *parent nullptr);~Widgets…

在STM32F7上實現CAN總線收發隊列

下面我將提供一個完整的STM32F7 CAN總線通信實現方案,包含中斷驅動的收發隊列管理。 1. CAN總線配置與隊列定義 can_bus.h #ifndef __CAN_BUS_H #define __CAN_BUS_H#include "stm32f7xx_hal.h" #include "queue.h"// CAN消息結構體 typedef …

【例3.5】位數問題(信息學奧賽一本通-1313)

【題目描述】 在所有的N位數中,有多少個數中有偶數個數字3?由于結果可能很大,你只需要輸出這個答案對12345取余的值。 【輸入】 讀入一個數N(N≤1000)。 【輸出】 輸出有多少個數中有偶數個數字3。 【輸入樣例】 2 【輸出樣例】 73 【題解代碼】 #incl…

pyQt學習筆記——Qt資源文件(.qrc)的創建與使用

Qt資源文件(.qrc)的創建與使用 1. 選擇打開資源2. 創建新資源3. 添加資源文件夾4. 選擇要加載的圖片文件5. 編譯resource.qrc文件6. 替換PySlide6為PyQt57. 其他說明 1. 選擇打開資源 在Qt項目中,可以通過windowIcon點擊選擇打開資源。 2. 創…

光電效應及普朗克常數的測定數據處理 Python實現

內容僅供參考,如有錯誤,歡迎指正,如有疑問,歡迎交流。 因為我不會Excel所以只能用Python來處理 祝大家早日擺脫物理實驗的苦海 用到的一些方法 PCHIP (分段三次埃爾米特插值多項式) 因為實驗時記錄的數…

2025最新3個wordpress好用的主題

紅色大氣的wordpress企業主題,適合服務行業的公司搭建企業官方網站使用。是一款專為中小企業和個人開發者設計的WordPress主題,旨在提供專業的網站構建解決方案。 通過此WordPress主題,用戶可以輕松創建和維護一個專業的企業網站&#xff0c…

OLLVM 增加 CC++ 字符串加密功能

版權歸作者所有&#xff0c;如有轉發&#xff0c;請注明文章出處&#xff1a;https://cyrus-studio.github.io/blog/ 前言 當我們如果沒有對字符串進行加密&#xff0c;使用 IDA 反匯編一下 so 可以看到 C 代碼中的字符串就直接暴露了。 字符串加密原理 sobf.c #include <…

桑福德·韋爾策劃美國捷運公司收購南美銀行案例分析

桑福德韋爾(Sanford I. Weill)在1981年策劃美國捷運公司(American Express)以5.5億美元收購南美貿易發展銀行所屬外國銀行機構的案例中,展現了其作為戰略家與執行者的雙重能力。這一交易的流程和韋爾的具體行為可從以下六個關鍵環節解析: 一、戰略定位與目標篩選 戰略目標…

人工智能與區塊鏈融合:開啟數字信任新時代

引言 在當今數字化飛速發展的時代&#xff0c;人工智能&#xff08;AI&#xff09;與區塊鏈技術正以前所未有的速度改變著我們的生活和工作方式。AI以其強大的數據處理和智能決策能力&#xff0c;為各行業帶來了效率的飛躍&#xff1b;而區塊鏈則以其去中心化、不可篡改的特性…

自動化逆向框架使用(Objection+Radare2)

1. 工具鏈架構與核心優勢 1.1 動靜結合逆向體系 graph LR A[動態分析] -->|Objection實時Hook| B[關鍵點定位] B --> C[行為數據捕獲] D[靜態分析] -->|Radare2深度解析| E[控制流重建] E --> F[漏洞模式識別] B --> F C --> F 組合優勢對比&…

流式ETL配置指南:從MySQL到Elasticsearch的實時數據同步

流式ETL配置指南&#xff1a;從MySQL到Elasticsearch的實時數據同步 場景介紹 假設您運營一個電商平臺&#xff0c;需要將MySQL數據庫中的訂單、用戶和產品信息實時同步到Elasticsearch&#xff0c;以支持實時搜索、分析和儀表盤展示。傳統的批處理ETL無法滿足實時性要求&…

Docker-Volume數據卷詳講

Docker數據卷-Volume 一&#xff1a;Volume是什么&#xff0c;用來做什么的 當刪除docker容器時&#xff0c;容器內部的文件就會跟隨容器所銷毀&#xff0c;在生產環境中我們需要將數據持久化保存&#xff0c;就催生了將容器內部的數據保存在宿主機的需求&#xff0c;volume …

單片機和微控制器知識匯總——《器件手冊--單片機、數字信號處理器和可編程邏輯器件》

目錄 四、單片機和微控制器 4.1 單片機(MCU/MPU/SOC) 一、定義 二、主要特點 三、工作原理 四、主要類型 五、應用領域 六、選型與設計注意事項 七、發展趨勢 4.2 數字信號處理器(DSP/DSC) ?編輯?編輯 一、定義 二、工作原理 三、結構特點 四、應用領域 五、選型與設計注…

macOS 安裝 Miniconda

macOS 安裝 Miniconda 1. Quickstart install instructions2. 執行3. shell 上初始化 conda4. 關閉 終端登錄用戶名前的 base參考 1. Quickstart install instructions mkdir -p ~/miniconda3 curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o…