docker容器备份、恢复和迁移volume方案

摘要:
卷作为数据的载体,在许多情况下需要备份、迁移或恢复。以Docker容器的卷为例来说明备份技术。让我们创建一个容器vol_Simple。容器在/date装载卷。可以使用以下方法备份卷。由于以前备份的数据,如果tar在当前目录中,也可以访问其在容器中的/backup。容器启动后,将存档文件中的/data恢复到以下目录,然后删除容器。恢复的数据位于vol_ Bck卷中。
volume作为数据的载体,在很多情况下需要对其中的数据进行备份、迁移或是恢复。下面一docker容器的volume为例,说一下备份的技巧。

  我们先建立一个容器vol_simple,该容器在/date挂载了一个volume。

    $ sudo docker run -it --name vol_simple -v /data ubuntu /bin/bash

    如果我们需要将这里的数据备份,一个很容易想到的办法是使用docker inspect命令查找/date在宿主机上对应的文件夹位置,然后复制其中内容或是使用tar进行打包,同样如果需要恢复某个volume中的数据,可以查找到volume对应的文件夹,将数据复制进这个文件夹或者使用tar恢复。但这些笨拙的做法并不值得推荐,因为查找主机上文件夹后在再操作容易出错,也不适合脚本的自动化。

  备份volume可以使用一下方法。

    $ sudo docker run  --rm --vloumes-from vol_simple -v$(pwd):/backup ubuntu tar cvf /backup/data.tar /data 

    这个指令启动了一个临时的容器,这个容器挂载了两个volume,第一个volume与要备份的volume共享,第二个volume将宿主机的当前目录挂载到容器的/backup下。容器运行后将要备份的内容(/data文件夹)备份到/backup/data.tar,然后删除容器,备份后的data.tar就留在了当前目录。

  恢复volume方法:

    $ sudo docker run -it --name vol_bck -v /data ubuntu /bin/bash

    $ sudo docker run --rm --volumes-from vol_bck -v $(pwd):/backup ubuntu tar xvf /backup/data.tar -C /

   首先运行了一个新容器作为数据恢复的目标。第二行指令启动了一个临时容器,这个容器挂载了两个volume,第一个volume与要恢复的volume共享,第二个将宿主机的当前目录挂载到容器的/backup下。由于之前备份的data.tar在当前目录下,那么它在容器中的/backup也能访问到,容器启动后将这个存档文件中的/data恢复到跟目录下,然后删除容器,恢复后的数据在vol_bck的volume中了。

免责声明:文章转载自《docker容器备份、恢复和迁移volume方案》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用 python 进行身份证号校验使用json-Server快速模拟服务环境搭建下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JAVA 容器

直接看一张图,理解图中的结构其实容器大概就可以理解了 这里就将三个常见的容器接口类:Set List Map 重点:多态的实现,父类的指针指向子类的对象 Set Set是Collection的子接口,实现Set接口的容器类的特点:无序,不重复 实现Set接口的类有:HashSet类 代码如下: package com.zpchcbd.comtainer;...

Javaweb容器的四种作用域

几乎所有web应用容器都提供了四种类似Map的结构:application session request page,Jsp或者Servlet通过向着这四个对象放入数据,从而实现Jsp和Servlet之间数据的共享。 application:整个应用  对应servlet中ServletContext session:会话    对应servlet中Htt...

Openstack的命令

整理一下Openstack的命令。主要是参考 redhat文档   查看rabbitmq 队列 rabbitmqctl list_queues   查看keystone的用户 keystone user-list 查看keystone endpoint keystone endpoint-list 查看keystone的role keyst...

IOC容器的初始化

1、BeanFactory   Spring Bean 的创建是典型的工厂模式,这一系列的Bean 工厂,也即IOC 容器为开发者管理对象间的依赖关系提供了很多便利和基础服务,在Spring 中有许多的IOC 容器的实现供用户选择和使用,其相互关系如下:     其中BeanFactory 作为最顶层的一个接口类,它定义了IOC 容器的基本功能规范,Bea...

Docker 常用命令与操作

介绍 此命令集合版本为 1.11.1 及以上 基础类 查看docker信息 # 查看docker版本 docker version # 显示docker系统的信息 docker info # 日志信息 docker logs # 故障检查 service docker status # 启动关闭docker sudo service d...

ubuntu16安装docker

首先确保curl已经安装! 然后执行: curl -sSL https://get.docker.com/|sudo sh 这个是通过脚本的方式安装docker. 运行命令测试 sudo docker run ubuntu echo "hello" 如果没有拉取镜像,这条命令会自动去拉取。  docker提供了一种非root用户来执行docker的方式:...