使用 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.mzph.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:是一种单向的高品质音…