自己学Docker:7.数据卷容器的备份、恢复

最近由于工作的原因,各种事情,忙的要死.用户发现软件有问题,也不管是不是自己操作的问题,一口就咬定是软件的问题,询问什么问题时就”有问题”三个字回应也是醉了.

烦心事过去就不说,之前一直关于Docker看到了数据卷容器,就像知道数据卷容器有什么用处.查了不少资料,最基本的用处还是利用数据卷容器来备份、恢复、迁移数据卷.

备份

我们先创建一个data容器.

sudo docker run -i -t -v /data --name data c9fc7f8eec37

根据之前Docker的数据持久化之数据卷容器可知,上面创建的data数据卷容器挂载了data目录.

为了验证数据卷容器的备份功能,我在挂载的/data目录下创建一个data文件,并写入内容”data”.

然后为了利用数据卷容器备份,使用 –volumes-from 标记来创建一个加载 data 容器卷的容器,并从主机挂载当前目录到容器的 /backup 目录。

sudo docker run -i -t --volumes-from data -v $(pwd):/backup c9fc7f8eec37 tar cvf /backup/backup.tar /data

上面的代码就完成了这一步,$(pwd)是docker支持的指定当前目录的方法,了解linux基本命令的会发现,linux查看当前目录就是pwd命令.

容器启动后,在当前目录下生成的backup.tar 文件就是data容器卷的备份文件.

这样,数据卷容器中的数据就备份完成.

简言之就是,先创建一个容器,并挂载要备份的data容器数据卷,再挂载数据卷(pwd):/backup目录到容器/bakcup,在容器中执行备份/data目录到/backup,也就是备份到宿主机$(pwd):/backup目录。

恢复

备份最终也是为了可以恢复,否则备份就没有意义了.Docker恢复备份也很简单,只需要2部即可.

首先,创建一个带有空数据卷的容器 data1。

sudo docker run -itd -v /data --name data1 c9fc7f8eec37

这里可以发现,run的参数使可以写在一起的.之前了解到参数i是打开容器中的stdin,t是为容器分配一个伪终端.这里的d是后台运行,并打印容器ID容器.

可以发现,名利执行后打印了容器的id,通过ps查看可知,容器一直在运行.

然后,创建另一个容器,挂载 data1容器卷中的数据卷,并使用 untar 解压备份文件到挂载的容器卷中。

sudo docker run --volumes-from data1 -v $(pwd):/backup c9fc7f8eec37 tar xvf /backup/backup.tar

这个时候,之前备份的数据卷容器的数据已经恢复到了容器data1中了.为了查看和验证恢复的数据,我们可以再启动一个容器挂载data1容器卷来查看.

简言之就是,如果要恢复数据到一个容器,首先创建一个带有数据卷的容器 data1,然后创建另一个容器,挂载 dbdata1 的容器,并使用 tar 解压备份文件到挂载的容器卷中。

时间: 2024-08-09 16:24:59

自己学Docker:7.数据卷容器的备份、恢复的相关文章

Docker 学习笔记【3】 Docker 仓库、数据卷、数据卷容器,网络基础实操。高级网络配置学习

Docker 学习笔记[4] 高级网络配置实操,实战案例实验 =========================================================================== Docker 学习笔记[2] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,记录开始 =========================================================================== 被格式化的脚本内容: #开头代表

Docker学习笔记(8-2)Docker - 数据卷容器

学习目的: 数据卷容器:用于在不能访问容器目录时,实现荣期间的数据共享 数据卷容器: 命名的容器挂在数据卷,其他容器通过挂在这个容器实现数据共享,挂载数据卷的容器就叫做数据卷容器 数据卷容器挂载宿主机目录. 挂载数据卷容器的方法 docker run --volumes-from [CONTAINER-NAME] # 使用上节课方法,构建过程中用指令创建数据卷 $ docker run -it --name dvt4 lexiaofei/dvt # ls #touch /datavolume1/

docker创建数据卷以及数据卷容器

docker容器管理有2中方式: 1:数据卷:类似Linux下目录挂载mount 2:数据卷容器:其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的 使用docker search xxx //xxx指的是搜索相应的镜像.搜索后根据自己需求进行pull 下载镜像 [email protected] :~# docker pull jdeathe/centos-ssh 查看pull后的镜像 [email protected] :~# docker images REPOSITORY    

Docker之数据卷和数据卷容器

数据卷是一个可供容器使用的特殊目录,可以在容器之间共享和重用,对数据卷的修改会马上生效,卷会一直存在直到没有容器使用,数据卷的使用类似于mount 数据卷容器就是一个普通的容器,可专门提供数据卷供其他容器挂载使用,可以在容器之间共享一些持续更新的数据 1:创建数据卷 利用镜像centos,创建一个名为tomcat的容器,并在后台以守护进程方式工作,且将本地的/b2b/目录挂在在新建立的tomcat容器的/test目录下 [email protected]:/home/zxl# docker ru

Docker 快速上手系列(4): 数据卷,数据卷容器的概念及相关操作

引子 有些时候,我们的服务运行时必不可少的会产生一些日志,或是我们需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 容器中管理数据主要有两种方式: 数据卷 数据卷容器 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性: - 数据卷可以在容器之间共享和重用 - 对数据卷的修改会立马生效 - 对数据卷的更新,不会影响镜像 - 卷会一直存在,直到没有容器使用 #(类似linux下的挂载(mount)) 创建数据卷 在用Docker ru

Docker 数据卷,数据卷容器详细介绍

Docker 数据卷,数据卷容器详细介绍 引子 有些时候,我们的服务运行时必不可少的会产生一些日志,或是我们需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 容器中管理数据主要有两种方式: 数据卷数据卷容器 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性: - 数据卷可以在容器之间共享和重用 - 对数据卷的修改会立马生效 - 对数据卷的更新,不会影响镜像 - 卷会一直存在,直到没有容器使用 #(类似linux下的挂载(mount

Docker 数据卷容器

如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器. 数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的. 首先,创建一个命名的数据卷容器 dbdata: $ sudo docker run -d -v /dbdata --name dbdata training/postgres echo Data-only container for postgres 然后,在其他容器中使用 --volumes-from 来挂载 dbdata 容器中的数据卷. $ sudo

Docker基本控制命令(资源控制、数据卷及数据卷容器、镜像创建、端口映射、私有仓库)

一.资源控制 1.CPU使用率控制 限制该镜像本次建立的容器最大只能占总资源的10% docker run --cpu-quota 10000 centos 2.按比例分配 创建两个容器为c1和c2,若只有这两个容器,设置容器的权重,使得c1和c2的CPU资源占比为33.3%和66. 7% docker run -itd --name c1 --cpu-shares 512 centos(镜像名)docker run -itd --name c2 --cpu-shares 1024 centos

Docker数据卷容器

一.是什么? 命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器. 二.容器间传递共享(--volumes-from) 先启动一个父容器dc01  dc02/dc03继承自dc01  回到dc01可以看到02/03各自添加的都能共享了  删除dc01,dc02修改后dc03可否访问    结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止 原文地址:https://www.cnblogs.com/my-program-li