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

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中了。
(0)

相关推荐

  • NodeJS全栈之阿里云服务器部署笔记

    Nodejs全栈之开启https协议 Nodejs全栈之nginx配置文件 我选的操作系统是centos7,可以直接在镜像市场里直接购买,省去安装步骤:主要涉及到Nodejs的版本管理,mongodb ...

  • docker容器的基本使用

    ### Docker中镜像的基本使用以及Docker的基本使用 #### 1.Docker的安装 ``` 先进入终端,然后使用以下命令: sudo apt-get update sudo apt-ge ...

  • (42条消息) Docker教程系列八:Docker备份与迁移(完)

    (42条消息) Docker教程系列八:Docker备份与迁移(完)

  • 如何恢复docker容器数据

    更新时间:2021年05月21日 11:01:46   作者:tianyucxh项目测试环境数据库数据丢失, 我们可以利用数据卷可以进行恢复数据,下面我来记录一下,希望此文章对各位有所帮助项目测试环境 ...

  • (7条消息) 迁移 Docker 容器储存位置

    本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载.或重新修改使用,但需要注明来源. 署名 4.0 国际 (CC BY 4.0) 本文作者: 苏洋 创建时间: 2019年07月1 ...

  • Docker定时备份MySQL数据到七牛云

    前言:我Linux服务器安装了docker,docker容器跑了springboot项目,用到了mysql数据库.所以必须准备程序,数据备份功能,万一哪天系统挂了,数据丢了,我可以随时恢复.因为没钱开 ...

  • 创建用于AI和机器学习的Docker容器

    容器技术(例如Docker)极大地简化了依赖性管理和软件的可移植性.在本系列文章中,我们将探讨Docker在机器学习(ML)场景中的用法. 本系列假定您熟悉ML,一般的容器化,尤其是Docker.欢迎 ...

  • 在启用GPU的Docker容器中运行AI模型

    容器技术(例如Docker)极大地简化了依赖性管理和软件的可移植性.在本系列文章中,我们将探讨Docker在机器学习(ML)场景中的用法. 本系列假定您熟悉ML,一般的容器化,尤其是Docker.欢迎 ...

  • 群晖NAS安装Docker容器版emby(zishuo版)

    原文链接 『原汁原味的官方Docker容器用法,只是单纯的进行破解及插件源,内置刮削补丁穿墙方案,改善大陆地区的用户体验,本镜像不用任何插件即可硬件转码和外网播放(小白不懂就多看看教程,不显示硬件转码 ...

  • Shell脚本控制docker容器启动顺序

    Shell脚本控制docker容器启动顺序

  • docker容器和虚拟化有什么区别?Linux云计算学习

    Linux容器是与系统其他部分隔离开的一系列进程,从另一个系统镜像运行,并由该镜像提供支持进程所需的全部文件(环境文件).那容器是虚拟化吗?docker容器和虚拟化有什么区别? 容器镜像包含了应用的所 ...

  • 一键安装Docker容器以及常见的运行命令记录

    我们一般的站长安装源码都是常规的一键SHELL安装或者编译安装,但是如果我们学会Docker容器的话,会觉得很方便,但是在学习和使用Docker的时候还是有一些不同的工具需要知道的.毕竟Docker算 ...