Docker数据管理之数据备份和恢复配置

Docker数据管理

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

将本地的目录或者文件挂载到容器内的数据卷中

数据卷是可提供容器使用的特殊目录,他绕过文件系统,可提供多种特性

数据卷可一在容器直接共享和重复使用
数据卷的修改会立刻生效
数据更新不会影响到镜像
卷一直存在,不管容器有没有使用

1,挂载目录

数据卷类似于linux中的mount挂载操作

在使用docker run命令的时候使用-v标记可以在容器内创建一个数据卷,多次使用-v表姐可以创建多个

也可以在docker-compose中被调用

如:docker run d -p 80:80 --name name1 -v /nginx:/usr/local/nginx nginx
如上所示就是将/nginx目录挂载到容器卷中/usr/lcoal/nginx下,如果目录不存在则会自动创建,他默认的权限是读写(rw),用户可以使用ro指定为只读等
如:docker run d -p 80:80 --name name1 -v /nginx:/usr/local/nginx:ro nginx
如果添加了ro,容器内挂载的数据卷的数据就无法修改

2.挂载本地文件作为数据卷

-v标记也可以从主机挂载单个文件到容器作为数据卷
如:docker run d -p 80:80 --name name1 -v /nginx.comf:/usr/local/nginx/nginx.conf:ro nginx
但是, 我们不推荐使用这种方式,因为在挂载容器的时候,如果容器内使用vi修改或者sed等修改会操作文件的inode改变,这在docker目前版本中可能会操作报错

3,数据卷容器

通常在一些持续更新的数据,我们可以使用数据卷容器,如:

[root@localhost ~]# docker run -it -v /mydata1 --name mydata debian
root@d3bc579080cb:/# echo `www.linuxea.com` > mydata/data.txt
root@d3bc579080cb:/# echo `date +%F-%T` > mydata1/data.txt
root@d3bc579080cb:/# cat mydata1/data.txt
2016-09-01-04:14:35
root@d3bc579080cb:/#
现在,在使用其他容器并且使用--volumes-from来挂载mydata容器中的数据卷,如:
db1挂载

[root@localhost ~]# docker run -it --volumes-from mydata --name db1 debian
root@9a42647f5a2d:/# cat mydata1/data.txt
2016-09-01-04:14:35
root@9a42647f5a2d:/#

db2挂载

[root@localhost ~]# docker run -it --volumes-from mydata --name db2 debian
root@8f7738f2f159:/# cat mydata1/data.txt
2016-09-01-04:14:35
root@8f7738f2f159:/#
此时无论在哪里进行修改都会同步,当然也可以多次使用--volumes-from参数来从多个容器挂载多个数据卷

如果删除,则需要使用docker rm -v来指定同时删除关联的容器,如果只是删除了挂载的容器,数据卷并不会被自动删除
##4,容器卷备份和恢复:

1.备份容器卷

我们沿用上面的示例,使用上面挂载的mydata容器卷

在备份之前,我们先在之前挂载的mydata容器中mydata1目录下的data文件中追加一行

[root@1002797adf78 mydata1]# echo "is I was a backup`date +%c-%p`" >> data.txt
[root@1002797adf78 mydata1]# cat data.txt
2016-09-01-16:08:24
is I was a backupThu Sep  1 16:32:40 2016-PM
[root@1002797adf78 mydata1]#

现在我们备份容器中的这个目录到本地来
docker run --volumes-from mydata -v $(pwd):/backup --name back kriation/centos7 tar cf /backup/beifen.tar /mydata1

这条命令先创建一个容器,使用--volumes-from来把mydata 容器的数据卷也就是mydata1目录挂载到backup目录下,容器启动后使用tar命令将/mydata1备份到宿主机的当前目录下:tar cf /backup/benfen.tar /mydata1

如下所示:

[root@gitlab dockerhub]# docker run --volumes-from mydata -v $(pwd):/backup --name back kriation/centos7 tar cf /backup/beifen.tar /mydata1
tar: Removing leading `/' from member names
[root@gitlab dockerhub]# ls
beifen.tar  file123
[root@gitlab dockerhub]#

我们解压出来查看下,备份完成

[root@gitlab dockerhub]# tar xf beifen.tar
[root@gitlab dockerhub]# cat mydata1/data.txt
2016-09-01-16:08:24
is I was a backupThu Sep  1 16:32:40 2016-PM
[root@gitlab dockerhub]#

2.恢复容器卷

1,如果要恢复一个容器,先创建一个带有数据卷的容器ngx

[root@gitlab dockerhub]# docker run -it -v /mydata1 --name ngx kriation/centos7 /bin/bash
[root@400835c3ce88 /]#

2,在创建一个新容器,挂载ngx容器,并使用tar xf解压到挂载的目录中

[root@gitlab dockerhub]# docker run --volumes-from ngx -v $(pwd):/backup kriation/centos7 tar xf /backup/beifen.tar
3,在回到ngx就可以看到数据已经恢复

[root@400835c3ce88 /]# cd mydata1/
[root@400835c3ce88 mydata1]# ls
data.txt

导入和到处容器

1,导入

[root@gitlab ~]# docker export b889bfd7a6ee > nginx.tar
[root@gitlab ~]# ll nginx.tar
-rw-r--r--. 1 root root 235801600 9月   2 02:08 nginx.tar
[root@gitlab ~]#

2,导出

[root@gitlab ~]# cat nginx.tar |docker import - marksugar/nginx:123
sha256:d236f62ae8c4ed106e00ba073877f90f19b21df0c8b3a67ca744baef9d7495af
[root@gitlab ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
marksugar/nginx             123                 d236f62ae8c4        6 seconds ago       226 MB

时间: 2024-09-17 04:38:56

Docker数据管理之数据备份和恢复配置的相关文章

11个数据备份和恢复软件2016年度入围产品

虽然云计算是稳定存在的,但备份和灾难恢复软件提供商提供了跨技术和平台的各种功能. 日前,行业媒体对2016年年度数据备份和恢复软件和服务类别产品进行评定,11个入围产品其中包括范围广泛的数据保护产品. 数据保护技术和多平台能力的融合是关键,因为客户寻求一体化产品.这些入围产品反映了云计算在备份和灾难恢复软件中的重要作用. 该类别考虑的产品包括备份和恢复软件,云备份和恢复服务,灾难恢复,快照和复制,电子保险库和归档等. 1.Acronis Backup12/Acronis Backup Advan

Linux网络文件系统的数据备份、恢复及同步机制

本文将详细介绍针对该网络文件系统的数据备份.恢复及同步机制在内核的具体实现,给广大系统管理员和研发人员提供技术参考.网络文件系统(NFS)协议是由 Sun MicroSystem 公司在 20 世纪 80 年代为了提供对共享文件的远程访问而设计和实现的,它采用了经典的客户机/服务器模式提供服务.为了达到如同 NFS 协议通过使用 Sun 公司开发的远在本机上使用本地文件系统一样便捷的效果,NFS 通过使用远程过程调用协议(RPC Protocol)来实现运行在一台计算机上的程序来调用在另一台远程

简单实现成功的数据备份和恢复的五大要点

在IT领域,一个普遍的共识是,数据备份和恢复故障是不可避免的.鉴于运行故障失败的代价是巨大的,甚至可能造成数据丢失的局面,显然这样的经历没有任何人会喜欢.那么,如何才能最好的避免这些问题的出现呢?下面,我将为您介绍一些尽可能减少发生运行故障失败机会,并加强您企业的数据备份环境的五大简单的要点.尽管这些要点并不能确保您企业能够获得持续的保障,但可以肯定的是,如果您遵循并借鉴了这五大要点,其将有助于解决您企业在这方面的某些顾虑,您会更容易的体验到较高的备份成功率和更好的恢复性能. 帮助您企业改善备份

常用的U盘数据备份和恢复方法

U盘在我们的日常生活中用得是越来越多了,但有时U盘很可能会感染病毒或出现这样那样的故障,这样,时刻做好U盘数据备份就变得十分重要了.数据备份的方法有很多,下面就介绍一种常用的U盘数据备份和恢复方法. 首先,我们下载并运行USBoot,然后插入U盘,USBoot会发现新插入的U盘, 一.选中这个U盘; 二.点击"点击此处选择工作模式"弹出一个菜单,选择"备份到文件"的菜单项; 三.接着点击"开始"; 四.这时,USBOOT就会弹出一个"备

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

今天,我们将学习如何快速地对docker容器进行快捷备份.恢复和迁移.Docker是一个开源平台,用于自动化部署应用,以通过快捷的途径在称之为容器的轻量级软件层下打包.发布和运行这些应用.它使得应用平台独立,因为它扮演了Linux上一个额外的操作系统级虚拟化的自动化抽象层.它通过其组件cgroups和命名空间利用Linux内核的资源分离特性,达到避免虚拟机开销的目的.它使得用于部署和扩展web应用.数据库和后端服务的大规模构建组件无需依赖于特定的堆栈或供应者. 所谓的容器,就是那些创建自Dock

Linux下实现MySQL数据备份和恢复的命令使用全攻略_Mysql

为了保障数据的安全,需要定期对数据进行备份.备份的方式有很多种,效果也不一样.一旦数据库中的数据出现了错误,就需要使用备份好的数据进行还原恢复.从而将损失降到最低.下面我们来了解一下MySQL常见的有三种备份恢复方式: 1.利用Mysqldump+二进制日志实现备份 2.利用LVM快照+二进制日志实现备份 3.使用Xtrabackup备份 一:实验环境介绍: 系统介绍:CentOS6.4_X64 数据库版本:mysql-5.5.33 二:基于Mysqldump命令实现备份恢复 2.1.思路概念

MySQL数据库的数据备份和恢复详解

本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM 和 Innodb,文中设计的 MySQL 版本为 5.0.22. 目前 MySQL 支持的免费备份工具有:mysqldump.mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件.MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到

IBM帮助实现不间断的数据备份和恢复

您的组织在保护数据安全性方面面临着多重挑战.您必须考虑到台式机和http://www.aliyun.com/zixun/aggregation/9600.html">笔记本电脑(当前可能未处于受保护状态)的全面备份数据解决方案的维护费用.减少管理不同场所的数据和流动员工的复杂性,同时维护数据的完整性和可用性. 作为IBM受管弹性服务组合的一部分,"IBM信息保护服务- 联机快速保护"旨在提供高安全性且价格适中的异地数据备份解决方案,以便为您的关键数据资产提供不间断的可扩

简单粗暴的Redis数据备份和恢复方法_Redis

示例 目标:把服务器CentOS上的redis数据复制到Mac机上 步骤: 在CentOS上找dump文件位置 vi /etc/redis.conf dbfilename dump.rdb dir /var/lib/redis 说明文件在 /var/lib/redis/dump.rdb 在mac上查找dump文件位置 vi /usr/local/etc/redis.conf dbfilename dump.rdb dir /usr/local/var/db/redis 拷贝服务器上的dump.r