一、备份

使用下面命令来备份dbdata数据卷容器内的数据卷:

  1. $ docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu tar cvf /backup/backup.tar /dbdata
  2. 分析:
  3. 首先利用ubuntu镜像创建一个容器worker
  4. 使用--volumes-from dbdata参数来让worker容器挂载dbdata容器的数据卷(即dbdata数据卷);
  5. 使用-v $(pwd):/backup参数来挂载本地的当前目录到worker容器的/backup目录;
  6. worker容器启动后,使用tar cvf /backup/backup.tar /dbdata命令将/dbdata下内容备份为容器内的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