使用 docker-volume-backup 備份 Docker 卷

docker-volume-backup 是一個用于備份 Docker 卷的工具,在 Windows 10 上使用它,你可以按照以下步驟操作:

1. 確保 Docker 環境已安裝并正常運行

在 Windows 10 上,你需要安裝 Docker Desktop for Windows。可以從 Docker 官方網站 下載并安裝 Docker Desktop。安裝完成后,啟動 Docker Desktop 并確保 Docker 服務正常運行。

2. 準備要備份的 Docker 卷

假設你已經有一個或多個 Docker 卷需要備份,例如一個名為 my_data_volume 的卷。

3. 編寫 Docker Compose 文件

根據你的需求,你可以參考以下示例編寫 Docker Compose 文件。這里提供幾個不同存儲后端的示例:

本地備份
version: '3'services:# 定義使用數據卷的服務my_service:image: some_image:tagvolumes:- my_data_volume:/path/in/containerbackup:image: offen/docker-volume-backup:v2.43.2environment:BACKUP_FILENAME: backup-%Y-%m-%dT%H-%M-%S.tar.gzBACKUP_LATEST_SYMLINK: backup-latest.tar.gzvolumes:- my_data_volume:/backup/my-app-backup:ro- /var/run/docker.sock:/var/run/docker.sock:ro- C:/path/to/local_backups:/archivevolumes:my_data_volume:
備份到 AWS S3
version: '3'services:my_service:image: some_image:tagvolumes:- my_data_volume:/path/in/containerbackup:image: offen/docker-volume-backup:v2.43.2environment:AWS_S3_BUCKET_NAME: your_bucket_nameAWS_ACCESS_KEY_ID: your_access_key_idAWS_SECRET_ACCESS_KEY: your_secret_access_keyvolumes:- my_data_volume:/backup/my-app-backup:ro- /var/run/docker.sock:/var/run/docker.sock:rovolumes:my_data_volume:
備份到 Azure Blob Storage
version: '3'services:my_service:image: some_image:tagvolumes:- my_data_volume:/path/in/containerbackup:image: offen/docker-volume-backup:v2.43.2environment:AZURE_STORAGE_CONTAINER_NAME: your_container_nameAZURE_STORAGE_ACCOUNT_NAME: your_account_nameAZURE_STORAGE_PRIMARY_ACCOUNT_KEY: your_primary_account_keyvolumes:- my_data_volume:/backup/my-app-backup:ro- /var/run/docker.sock:/var/run/docker.sock:rovolumes:my_data_volume:

4. 運行 Docker Compose

將上述 Docker Compose 文件保存為 docker-compose.yml,然后在包含該文件的目錄下打開 PowerShell 或命令提示符,運行以下命令啟動備份服務:

docker-compose up -d

這將在后臺啟動備份服務,按照配置的時間間隔(如果有配置)定期進行備份。

5. 手動觸發備份(可選)

如果你想手動觸發一次備份,可以使用 Docker CLI 運行以下命令:

docker run --rm \-v my_data_volume:/backup/data \--env AWS_ACCESS_KEY_ID="your_access_key_id" \--env AWS_SECRET_ACCESS_KEY="your_secret_access_key" \--env AWS_S3_BUCKET_NAME="your_bucket_name" \--entrypoint backup \offen/docker-volume-backup:v2.43.2

請根據你的實際情況替換相應的環境變量和卷名。

6. 查看備份結果

根據你配置的存儲后端,你可以在本地目錄、AWS S3 存儲桶或 Azure Blob 存儲容器中查看備份文件。

支持多個服務和多個數據卷的備份

以下是一個優化后的 docker-compose.yml 示例,支持多個服務和多個數據卷的備份。該方案提供了靈活的配置方式,可以針對不同數據卷設置不同的備份策略:

version: '3'services:# 應用服務 1:數據庫database:image: postgres:14volumes:- db-data:/var/lib/postgresql/datalabels:- docker-volume-backup.stop-during-backup=trueenvironment:POSTGRES_PASSWORD: example# 應用服務 2:Web 服務web:image: nginx:alpinevolumes:- web-data:/usr/share/nginx/htmlports:- "80:80"# 應用服務 3:Redis 緩存redis:image: redis:alpinevolumes:- redis-data:/data# 備份服務backup:image: offen/docker-volume-backup:v2.43.2restart: alwaysenvironment:# 全局配置:備份文件命名規則BACKUP_FILENAME: "%Y-%m-%dT%H-%M-%S.tar.gz"# 全局配置:保留最近 7 天的備份BACKUP_KEEP_DAYS: 7# 全局配置:每周日凌晨 3 點執行備份BACKUP_CRON_SCHEDULE: "0 3 * * 0"# 啟用詳細日志BACKUP_DEBUG: "true"volumes:- db-data:/backup/database:ro- web-data:/backup/website:ro- redis-data:/backup/redis:ro- /var/run/docker.sock:/var/run/docker.sock:ro- ./backups:/archivevolumes:db-data:web-data:redis-data:

優化點說明

  1. 多數據卷支持

    • 同時備份 db-dataweb-dataredis-data 三個數據卷
    • 每個數據卷在備份容器中映射到獨立的路徑
  2. 靈活的備份策略

    • 使用環境變量設置全局備份策略(如備份頻率、保留時間)
    • 可通過環境變量為不同卷設置獨立策略(示例中使用全局配置)
  3. 容器停止控制

    • 對數據庫服務添加 stop-during-backup=true 標簽
    • Web 和 Redis 服務不添加該標簽,備份時不會停止
  4. 本地備份管理

    • 備份文件按卷名分類存儲在本地目錄
    • 自動清理舊備份,節省空間
  5. 增強可維護性

    • 使用命名卷替代匿名卷
    • 分離不同類型的服務
    • 添加必要的注釋說明

擴展配置示例

如果你需要為不同數據卷設置不同的備份策略,可以通過創建多個備份服務實例實現:

version: '3'services:# 主應用服務app:image: my-app:latestvolumes:- app-data:/app/data- app-logs:/app/logs# 數據庫服務db:image: mysql:8.0volumes:- db-data:/var/lib/mysqllabels:- docker-volume-backup.stop-during-backup=true# 數據庫備份服務(每天備份)db-backup:image: offen/docker-volume-backup:v2.43.2restart: alwaysenvironment:BACKUP_CRON_SCHEDULE: "0 2 * * *"  # 每天凌晨 2 點BACKUP_KEEP_DAYS: 14BACKUP_FILENAME: "db-%Y-%m-%dT%H-%M-%S.tar.gz"volumes:- db-data:/backup/database:ro- /var/run/docker.sock:/var/run/docker.sock:ro- ./backups:/archive# 應用數據備份服務(每周備份)app-backup:image: offen/docker-volume-backup:v2.43.2restart: alwaysenvironment:BACKUP_CRON_SCHEDULE: "0 4 * * 0"  # 每周日凌晨 4 點BACKUP_KEEP_DAYS: 30BACKUP_FILENAME: "app-%Y-%m-%dT%H-%M-%S.tar.gz"volumes:- app-data:/backup/app:ro- /var/run/docker.sock:/var/run/docker.sock:ro- ./backups:/archive# 日志備份服務(每月備份)logs-backup:image: offen/docker-volume-backup:v2.43.2restart: alwaysenvironment:BACKUP_CRON_SCHEDULE: "0 6 1 * *"  # 每月 1 日凌晨 6 點BACKUP_KEEP_MONTHS: 6BACKUP_FILENAME: "logs-%Y-%m-%dT%H-%M-%S.tar.gz"volumes:- app-logs:/backup/logs:ro- /var/run/docker.sock:/var/run/docker.sock:ro- ./backups:/archivevolumes:app-data:app-logs:db-data:

這個優化后的方案允許你:

  1. 為不同類型的數據設置不同的備份頻率
  2. 對關鍵數據(如數據庫)設置更頻繁的備份
  3. 對不太重要的數據(如日志)設置更長的保留期
  4. 獨立管理每個備份任務的狀態和日志

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

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

相關文章

用戶行為日志分析的常用架構

## 1. 經典Lambda架構 Lambda架構是一種流行的大數據處理架構,特別適合用戶行為日志分析場景。 ### 1.1 架構組成 Lambda架構包含三層: - **批處理層(Batch Layer)**: 存儲全量數據并進行離線批處理 - **實時處理層(Speed Layer)**: 處理最新數據&…

從API到UI:直播美顏SDK中的濾鏡與貼紙功能開發與落地方案詳解

時下,濾鏡和貼紙功能,已經成為主播們展現個性、增強互動的“必備神器”。那么,這些功能背后的技術實現到底有多復雜?如何從API到UI構建一個流暢、靈活的美顏SDK呢?本文將從底層原理到前端實現,全面解析這兩…

21.EC實戰 嵌入式控制器EC如何進入休眠模式實現低功耗

文章目錄 一、概述1. WUI0中斷向量表配置2. 中斷服務函數內容3. 深度睡眠檢測4. 深度睡眠功能函數4.1 關閉所有中斷4.2 外部中斷對應引腳功能配置4.3 設置喚醒功能和喚醒中斷4.4 進入深度睡眠狀態一、概述 EC作為筆記本電腦的嵌入式控制器,在筆記本電腦使用電池單獨工作時,關…

Java實現PDF加水印功能:技術解析與實踐指南

Java實現PDF加水印功能:技術解析與實踐指南 在當今數字化辦公環境中,PDF文件因其跨平臺兼容性和格式穩定性而被廣泛應用。然而,為了保護文檔的版權、標記文檔狀態(如“草稿”“機密”等)或增加文檔的可追溯性&#xf…

vue2、vue3項目打包生成txt文件-自動記錄打包日期:git版本、當前分支、提交人姓名、提交日期、提交描述等信息 和 前端項目的版本號json文件

vue2 打包生成text文件 和 前端項目的版本號json文件 項目打包生成txt文件-自動記錄git版本、當前分支、提交人姓名、提交日期、提交描述等信息生成版本號json文件-自動記錄當前版本號、打包時間等信息新建branch-version-webpack-plugin.js文件 // 同步子進程 const execSyn…

Filament引擎(一) ——渲染框架設計

filament是谷歌開源的一個基于物理渲染(PBR)的輕量級、高性能的實時渲染框架,其框架架構設計并不復雜,后端RHI的設計也比較簡單。重點其實在于項目中材質、光照模型背后的方程式和理論,以及對它們的實現。相關的信息,可以參考官方…

洛谷B3876—— [信息與未來 2015] 中間值

見:B3876 [信息與未來 2015] 中間值 - 洛谷 題目描述 給出一個正整數 n,生成長度為 n 的數列 a,其中 ai?i(1≤i≤n)。 若 n 為奇數,則輸出 a 的中間數(位于 a 正中位置的數);若 n 為偶數&am…

Java 后端基礎 Maven

Maven 1.什么是Maven 2.Maven的作用 Maven核心 Maven概述 IDEA集成Maven 1.創建Maven項目 點擊設置里的 Project Structure 將jdk和編譯語言進行設置 隨后點擊apply點擊ok 2.Maven坐標 3.導入Maven項目 將文件夾復制到當前項目的目錄下 在這個目錄下,在磁盤中…

qtcreater配置opencv

我配置opencv不管是按照網上的教程還是deep seek發現都有些問題,下面是我的配置方法以及實踐成功的心得 電腦環境 windows平臺qt6 下載 我這里直接提供官網下載地址:https://opencv.org/releases/ 我下載的是最新版,下載后是一個.exe文件…

單片機-STM32部分:15、直流電機與步進電機 PWM/IO

飛書文檔https://x509p6c8to.feishu.cn/wiki/InUfwEeJNimqctkyW1mcImianLh 一、步進電機與直流電機: 1-1、什么是直流電機? 直流電機是最常見的電機類型。直流電動機通常只有兩個引線,一個正極和一個負極。直流電機的轉速控制主要依靠改變輸…

「佰傲再生醫學」攜手企企通,解鎖企業采購供應鏈數字化新體驗

健康,是人類美好生活的基石。隨著“健康中國2030”規劃的深入推進,生物醫藥和再生醫學等前沿技術快速崛起,已成為促進全民健康、提升生命質量的重要支撐,為健康事業注入了新的希望和動力。 一、佰傲再生醫學,讓每個人…

PyTorch Geometric(PyG):基于PyTorch的圖神經網絡(GNN)開發框架

PyTorch Geometric(PyG):基于PyTorch的圖神經網絡(GNN)開發框架 一、PyG核心功能全景圖 PyTorch Geometric(PyG)是基于PyTorch的圖神經網絡(GNN)開發框架,專…

亮相戛納電影節、北京電影節的影星

?17日,由高圓圓、古天樂主演的《風林火山》劇組,在第78屆戛納影展上走紅毯亮相,記者爭相拍照,風光無限。 值得關注的是,導演麥浚龍以一身黑色晚禮服踏上紅毯,微笑間顯得躊躇滿志;古天樂則以白色…

Django框架的前端部分使用Ajax請求一

Ajax請求 目錄 1.ajax請求使用 2.增加任務列表功能(只有查看和新增) 3.代碼展示集合 這篇文章, 要開始講關于ajax請求的內容了。這個和以前文章中寫道的Vue框架里面的axios請求, 很相似。后端代碼, 會有一些細節點, 跟前幾節文章寫的有些區別。 一、ajax請求使用 我們先…

IP地址代理公司:服務模式與行業應用探析

隨著數據驅動型經濟的快速發展和互聯網應用的普及,IP地址代理服務逐漸成為支持多種網絡業務的重要組成部分。近年來,提供代理IP服務的公司遍地開花,這一市場強調供給的技術深度和服務靈活性,而代理IP公司本身也逐步從單一的技術供…

C語言練手磨時間

167. 兩數之和 II - 輸入有序數組 給你一個下標從 1 開始的整數數組 numbers &#xff0c;該數組已按 非遞減順序排列 &#xff0c;請你從數組中找出滿足相加之和等于目標數 target 的兩個數。如果設這兩個數分別是 numbers[index1] 和 numbers[index2] &#xff0c;則 1 <…

本地部署Firecrawl+Dify調用踩坑記錄

最近自己研究Dify&#xff0c;使用到Firecrawl這個比較好用的工具。用Firecrawl官網的不知道為什么總是卡住得不到結果&#xff0c;于是我打算自己去本地部署一個。好家伙真給我人搞麻了&#xff0c;太多問題了。 我是在京東云上面租的一臺服務器。 首先就是docker的安裝&…

iOS SwiftUI的具體運用實例(SwiftUI庫的運用)

最近接觸到一個 SwiftUI的第三方框架&#xff0c;它非常的好用。以下是 具體運用實例&#xff0c;結合其核心功能與開發場景&#xff0c;分多個維度進行詳細解析&#xff1a; 一、基礎 UI 組件開發 登錄界面 SwiftUI 的 VStack、TextField 和 Button 可快速構建用戶登錄表單。例…

【C++】模板上(泛型編程) —— 函數模板與類模板

文章目錄 一、啥是泛型編程二、函數模板2.1、函數模板的概念2.2、函數模板的格式2.3、函數模板的原理2.4、函數模板的實例化2.4.1、隱式實例化&#xff1a;讓編譯器根據實參推演模板參數的實際類型2.4.2、顯示實例化&#xff1a;在函數名后的<>中指定模板參數的實際類型 …

語音識別-2

目錄 1.藍牙優化 1.打開sco 2.外放時的藍牙的不同版本適配 2.微軟文本轉語音優化 1.異步文本轉語音 2.語音的個性化 上一篇關于語音識別, 雖然能用,但在系統適配,機器適配方面,速度,性能等還是有優化的地方.所以這篇是關于這些的. 1.藍牙優化 A2DP:是一種單向的高品質音…