在生产环境中使用 Docker,很多时候需要对数据进行持久化,或者进行容器间的数据共享。

容器中的管理数据主要有两种方式:

数据卷 (Data Volumes): 容器内数据直接映射到本地主机环境;

数据卷容器(Data Volume Containers): 使用特定容器维护数据卷。

那如何实现容器之间共享数据,并实现数据的备份和恢复。

数据卷:

  是一个可供容器使用的特殊目录,它将主机操作系统目录直接 映射进容器,类似于 Linux 中的 mount 操作。

  特点:

数据卷可以在容器之间共事和重用,容器间传递数据将变得高效与方便;
对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作;
对数据卷的更新不会影响镜像,解摘开应用和数据;
卷会一直存在 ,直到没有容器使用,可以安全地卸载它;

数据卷容器:  

  如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器,数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载。

docker run -v /datadb  --name datadb   busybox  sleep 

[root@master song]# docker exec  -t -i datadb  /bin/sh
/ # ls /datadb/
/ # [root@master song]#
[root@master song]# !ll
ll /var/lib/docker/volumes/
总用量
drwxr-xr-x root root 3月 : 1a84246c5775418fe13c0d19f30536bf23d7829e497985bba83d532ceb56a874
-rw------- root root 3月 : metadata.db
drwxr-xr-x root root 3月 : test

docker run --volumes-from db1 --name db2 --restart=always busybox
docker ps -a
docker run --volumes-from db2 --name db3 --restart=always busybox /bin/sh -c sleep 1000

备份:

  

. 备份 使用下面的命令来备份 dbdata 数据卷容器内的数据卷:
$ docker run -volumes-from dbdata -v $ (pwd) : /backup - -name worker ubuntu tar cvf /backup/backup.tar /dbdata
这个命令稍微有点复杂,具体分析下。 首先利用 ubuntu 镜像创建了一个容器 worker。 使用- -volumes-from dbdata 参数 来让 worker 容器挂载 dbdata 容器的数据卷(即 dbdata 数据卷);使用-v $ (pwd) : /backup 参数来挂载本地的当前目录到 worker 容器的/backup 目 录。 worker 容器启动后,使用 tar cvf /backup/backup.tar /dbdata 命令将/dbdata 下内容备份为容器内的/backup/backup. tar,即宿主主机当前目录下的 backup . tar。
. 恢复 如果要恢复数据到一个容器,可以按照下面的操作。 首先创建一个带有数据卷的容器 dbdata2:
$ docker run -v /dbdata --name dbdata2 ubuntu /bin/bash
然后创建另一个新的容器,挂载 dbdata2 的容器,并使用 untar 解压备份文件到所挂 载的容器卷中:
$docker run --volumes-from dbdata2 -v $(pwd) :/backup busybox tar xvf /backup/backup.tar

 

1.docker 数据卷的备份和恢复(非大数据量)的更多相关文章

  1. Docker数据卷容器备份、恢复

    1.备份数据卷容器 使用数据卷来备份数据,通过指定本地的一个文件路径,对应到容器中的路径,运行tar命令将重要的文件打包备份. $ cd /home/xm6f/dev $ docker run --v ...

  2. Docker 备份、恢复、迁移数据卷

    可以利用数据卷对其中的数据进行进行备份.恢复和迁移. 备份 首先使用 --volumes-from 标记来创建一个加载 dbdata 容器卷的容器,并从本地主机挂载当前到容器的 /backup 目录. ...

  3. 【Docker】利用数据卷容器来备份、恢复、迁移数据卷

    利用数据卷容器来备份.恢复.迁移数据卷 可以利用数据卷对其中的数据进行进行备份.恢复和迁移. 备份 首先使用 --volumes-from 标记来创建一个加载 dbdata 容器卷的容器,并从主机挂载 ...

  4. docker定义数据卷及数据卷的备份恢复

    前言:生产环境中使用docker时,往往需要对数据进行持久化(只有把容器导出为镜像,才能够保存写的数据,否则容器删除或者停止,所有数据都会没有),或者需要在多个容器之间进行数据共享,这必然涉及容器的数 ...

  5. docker 数据卷和docker数据卷容器以及数据卷的备份和还原

    一:数据卷 1.什么是数据卷 数据卷是通过特殊设计的目录,可以绕过联合文件系统,为一个或者多个容器提供服务,数据卷是在docker宿主机当中,数据卷可以是文件也可以是文件夹. 2.特点 1.数据卷在容 ...

  6. Docker容器的数据卷(data volume),数据卷容器,数据卷的备份和还原。

    Docker容器的数据卷(data volume),数据卷容器,数据卷的备份和还原. 数据卷就是数据(一个文件或者文件夹). Docker的理念之一是将应用与其运行的环境打包,docker容器的生命周 ...

  7. 无忧之道:Docker中容器的备份、恢复和迁移

    原创:LCTT https://linux.cn/article-5967-1.html译者: GOLinux本文地址:https://linux.cn/article-5967-1.html 201 ...

  8. 孙荣辛|大数据穿针引线进阶必看——Google经典大数据知识

    大数据技术的发展是一个非常典型的技术工程的发展过程,荣辛通过对于谷歌经典论文的盘点,希望可以帮助工程师们看到技术的探索.选择过程,以及最终历史告诉我们什么是正确的选择. 何为大数据   "大 ...

  9. 一起来学大数据——走进Linux之门,学习大数据的重中之重

    昨天我们看了有关大数据Hadoop的一些知识点,但是要在学习大数据之前,我们还是要为大数据的环境做一些的部署. 那么,今天我们就来讲讲开启我们大数据之路的Linux,跟上我们的脚步yo~ Linux介 ...

随机推荐

  1. PAT A1094 The Largest Generation (25 分)——树的bfs遍历

    A family hierarchy is usually presented by a pedigree tree where all the nodes on the same level bel ...

  2. Generative Adversarial Nets[Pre-WGAN]

    本文来自<towards principled methods for training generative adversarial networks>,时间线为2017年1月,第一作者 ...

  3. 【转】强化学习(一)Deep Q-Network

    原文地址:https://www.hhyz.me/2018/08/05/2018-08-05-RL/ 1. 前言 虽然将深度学习和增强学习结合的想法在几年前就有人尝试,但真正成功的开端就是DeepMi ...

  4. Java调度池的实现原理

    下图是关于ScheduledFutureTask的继承体系结构图.

  5. 如何用CSS3画出一个立体魔方?

    前言 最近在写<动画点点系列>文章,上一期分享了< 手把手教你如何绘制一辆会跑车 >,本期给大家带来是结合CSS3画出来的一个立体3d魔方,结合了js让你随心所欲想怎么转,就怎 ...

  6. C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 客户常用问题回答

    A.系统有两个添加用户 一个是申请用户.一个是添加用户.这两个分别在什么情况下使用? 回答 1:不是所有的用户都是管理员添加的,特别是分公司多,部门多时,都由管理员添加,效率低,而且很容易输入不精确的 ...

  7. Codeforces Round #486 (Div. 3)-B. Substrings Sort

    B. Substrings Sort time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  8. sql中distinct和order by问题的解决方案

    需求:根据PID字段对数据去重,根据Sort字段排序,需要显示这个两个字段. 如图,这是原始数据,先排序: 排序后发现两个项是重复的,需要去除一个, 因为Distinct对检查Select里面的每一列 ...

  9. Spring AOP详细介绍

    AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Asp ...

  10. node.js介绍和npm的使用

    Node.js介绍 打开Nodejs英文网:https://nodejs.org/en/ 中文网:http://nodejs.cn/ 我们会发现这样一句话: 翻译成中文如下: Node.js 是一个基 ...