Docker 数据卷容器-数据卷备份和还原

news/2025/3/12 12:28:51/文章来源:https://www.cnblogs.com/autopwn/p/18717952

以下是关于 Docker 数据卷容器 的详细总结,以及如何进行 数据卷备份和还原 的说明:


1. 什么是 Docker 数据卷容器?

概念:

  • 数据卷容器 是一种特殊的容器,用于存储和管理数据卷。
  • 它的主要作用是让多个容器通过挂载同一个数据卷容器来实现 数据共享独立管理
  • 数据卷容器的核心机制是通过 --volumes-from 参数将一个容器中的数据卷挂载到其他容器中。

2. 数据卷容器的使用场景

  1. 数据共享

    • 多个容器需要访问同一份数据,例如 Web 应用容器与数据库容器之间共享数据。
  2. 独立管理

    • 数据与应用解耦,数据保存在数据卷容器中,即使删除应用容器,数据依然可以保留,并供其他容器使用。
  3. 备份和还原

    • 数据卷容器的内容可以很方便地进行备份和恢复。

3. 创建和使用数据卷容器

3.1 创建一个数据卷容器

使用以下命令创建一个数据卷容器:

docker run -itd --name data-volume-container -v /data1 -v /data2 centos
  • 命令解析
    • -v /data1-v /data2:创建两个数据卷 /data1/data2
    • --name data-volume-container:指定容器名称为 data-volume-container
    • centos:使用 CentOS 镜像运行容器。

3.2 挂载数据卷到其他容器

通过 --volumes-from 参数将数据卷挂载到新容器中,实现数据共享:

docker run -it --name app-container --volumes-from data-volume-container centos
  • 命令解析
    • --volumes-from data-volume-container:将 data-volume-container 中的数据卷挂载到 app-container
    • 新容器 app-container 中的 /data1/data2data-volume-container 中的内容保持同步。

3.3 实践示例

步骤 1:创建数据卷容器

docker run -itd --name data-volume -v /data-vol1 -v /data-vol2 centos

步骤 2:在数据卷容器中写入数据

进入 data-volume 容器并写入数据:

docker exec -it data-volume bash
cd /data-vol1
echo "Hello from Volume1" > hello.txt

退出容器。

步骤 3:挂载数据卷到新容器

使用 --volumes-from 挂载数据卷到一个新容器:

docker run -it --name app-container --volumes-from data-volume centos

步骤 4:验证共享数据

进入 app-container 容器,查看 /data-vol1 中是否存在文件 hello.txt

docker exec -it app-container bash
cd /data-vol1
cat hello.txt

输出结果应为:

Hello from Volume1

4. Docker 数据卷的备份与还原

4.1 数据备份

将数据卷容器的数据备份到宿主机中的归档文件(如 .tar 文件):

步骤 1:运行备份命令

docker run --rm --volumes-from data-volume -v $(pwd):/backup centos \
tar cvf /backup/volume-backup.tar /data-vol1 /data-vol2
  • 命令解析
    • --volumes-from data-volume:挂载数据卷容器 data-volume
    • -v $(pwd):/backup:将当前宿主机目录挂载到容器的 /backup
    • tar cvf /backup/volume-backup.tar ...:将数据卷 /data-vol1/data-vol2 的内容归档到宿主机的 volume-backup.tar 文件。

结果

在当前目录下生成一个名为 volume-backup.tar 的备份文件,包含了 /data-vol1/data-vol2 的数据。


4.2 数据还原

将备份的归档文件恢复到一个新的数据卷容器中:

步骤 1:创建一个新的数据卷容器

docker run -itd --name new-data-volume -v /data-vol1 -v /data-vol2 centos

步骤 2:运行还原命令

docker run --rm --volumes-from new-data-volume -v $(pwd):/backup centos \
tar xvf /backup/volume-backup.tar -C /
  • 命令解析
    • --volumes-from new-data-volume:挂载新的数据卷容器。
    • -v $(pwd):/backup:将宿主机的备份文件目录挂载到新容器的 /backup
    • tar xvf /backup/volume-backup.tar -C /:将归档文件内容解压还原到数据卷中。

步骤 3:验证还原结果

进入新的数据卷容器,检查数据是否成功还原:

docker exec -it new-data-volume bash
cd /data-vol1
ls

如果看到 hello.txt 文件,则表示还原成功。


5. 总结

数据卷容器的优点

  1. 数据共享:

    • 容器之间可以通过挂载同一数据卷容器实现数据共享。
  2. 数据独立:

    • 数据和应用解耦,即使删除应用容器,数据可以继续保留。
  3. 集中管理:

    • 数据可以集中存储,便于备份和恢复。
  4. 适用于多种场景:

    • 应用包括日志共享、文件存储、数据库持久化等。

实际操作中的注意事项

  1. 挂载权限:

    • 如果需要保护数据卷,可以设置为只读模式(:ro)。
  2. 备份与恢复:

    • 定期备份数据卷,避免数据丢失。
  3. 分布式存储:

    • 如果数据需要高可用性,推荐挂载分布式存储(如 NFS、Ceph)。

通过以上方法,你可以灵活使用数据卷容器管理和共享数据。如果你还有其他问题,欢迎提问!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/884666.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【后端】简化部署设计方案——内层设计方案

根据《简化部署设计方案V2》的内容,内层部署需要提供的 .sh 脚本应覆盖部署流程的各个阶段,确保组件能够顺利安装、配置、启动、检查状态,并支持升级和卸载。 一、 部署某组件所需的内层结构 左侧是约定的内层结构,右侧的其他部署的内容物,按需存放即可。1.1 scripts目录:…

H3C CX8028 GPFS并行文件系统全闪存储配置案例

H3C华三CX8028使用IBM的GPFS商业授权的一款全闪存储设备。本案中,客户机服务器与存储服务器均搭配双口200G网卡 ,配合200G的ROCE网络搭建集群。 GPRS文件系统中,存储集群不光需要把存储服务器组织在一起,客户机也需要在集群中声明身份,参与到集群之中,这并不像传统的集中…

【kali】在Kali Linux中安装Navicat17

Navicat 是笔者最喜欢的一款专业的数据库管理工具,不仅支持多种数据库类型,而且它提供了直观的用户界面和丰富的功能,帮助用户轻松管理和操作数据库,提高工作效率。 通过,Navicat我们是在Windows环境中部署的。本文以KALI为例,讲解如何在Linux环境中部署。 首先,我们从官…

URL 生成网站截图 API 数据接口

URL 生成网站截图 API 数据接口 网站工具 / 截图 高效生成网页截图 生成网页截图 / 图片输出。1. 产品功能支持全页截图和视窗截图; 支持自定义截图尺寸; 兼容移动设备截图; 支持暗黑模式截图; 固定参数请求,可以得到最新的站点截图; 快速高效的截图生成; 全接口支持 HT…

OCR识别表格中的参数及参数值

一、需求 识别固定表格中的文字,输出表格中的参数字典 二、整体思路找到一张含有表格的图片,利用mac自带的预览工具分析出图片每个单元格的对角线坐标, 使用程序根据图片文件和对角线坐标数组,分割图片为很多个小图片, 采用tesseract库识别单个单元格中的文字,并将识别出…

H800 Nvlink 基础环境配置(Ubuntu20.04 )

H100/800 SXM的8卡服务器在配置多机互联环境时,除了要安装Nvidia的GPU驱动,还需要安装FabricManager。 Nvidia 提供了在线安装和离线安装两种方式。Z项目H800 NVL 基础环境配置(Ubuntu20.04 ) 操作系统基础安装 配置源 本操作在Ubuntu 20.04下完成, 所有命令都以root身份执行…

c_note

c笔记一、变量 1、变量的声明 ​ 变量的声明是给编译器看的,告诉编译器变量的类型以及名字等相关的信息。 格式:数据类型 变量名; 变量的声明显然是一个编译时概念,所以它和程序的运行没有太大的关系。 一个变量具有声明,并不意味着该变量会在运行时期分配内存空间。 2、…

Drasi Sources SDK

什么是Drasi数据源(Source)?Source提供了与系统的连接,Drasi 可以将这些系统视为变化源。source 在 Drasi 中执行三个重要功能:处理源系统生成的更改日志/源,并将这些更改推送到使用该源作为输入的每个连续查询。 将源更改数据转换为一致的属性图数据模型,以便订阅的 Co…

【每日一题】20250216

人生就是这样,不经历鲜血淋漓的疼痛,就不会明白那些曾经让我们厌烦的说教其实是受用一生的信条。【每日一题】(多选)如图所示,在竖直半面内有一半径为 \(R\) 的圆弧轨道.半径 \(OA\) 木平、\(OB\) 竖直,一个质量为 \(m\) 的小球自 \(A\) 的正上方 \(P\) 点由静止开始自由…

数据团队必读:智能数据分析文档(DataV Note)五种高效工作模式

数据项目,无论是数据分析、可视化,还是数据科学和机器学习相关的项目,通常都非常复杂,涉及多个组成部分,比如代码、数据、运行环境、SQL脚本以及分析报告等;与此同时,随着AI时代的到来,数据科学领域正经历重大变革。这对于数据科学团队来说,如何保持高效地工作模式一直…

SU镜像:缩放s

su没有镜像,可用:缩放s 选中要镜像的对象——复制一个——s——找到中间的点——向右拉动——输入 -1

LGP1377 [TJTS 2011] 树的序 学习笔记

LGP1377 [TJTS 2011] 树的序 学习笔记 Luogu Link 题意简述 给一个生成序列 \(p\),简单起见 \(p\) 是一个长为 \(n\) 的排列。按照这样的步骤生成一棵二叉搜索树:往空树中插入 \(p_i\),则 \(p_i\) 成为当前二叉搜索树的根。 往非空树 \(u\) 中插入 \(p_i\),若 \(p_i\) 小于…