6.3 利用数据卷容器来迁移数据

可以利用数据卷容器对其中的数据卷进行备份、恢复,以实现数据的迁移。下面介绍这两个操作。

1.备份

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


  1. $ docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu tar
  2. cvf /backup/backup.tar /dbdata

这个命令稍微有点复杂,具体分析一下。首先利用ubuntu镜像创建了一个容器worker。使用—volumes-from dbdata参数来让worker容器挂载dbdata容器的数据卷(即dbdata数据卷);使用-v$(pwd):/backup参数来挂载本地的当前目录到worker容器的/backup目录。

worker容器启动后,使用了tar cvf/backup/backup.tar/dbdata命令来将/dbdata下内容备份为容器内的/backup/backup.tar,即宿主主机当前目录下的backup.tar。

2.恢复

如果要将数据恢复到一个容器,可以按照下面的步骤操作。首先创建一个带有数据卷的容器dbdata2:


  1. $ docker run -v /dbdata --name dbdata2 ubuntu /bin/bash

然后创建另一个新的容器,挂载dbdata2的容器,并使用untar解压备份文件到所挂载的容器卷中:


  1. $ docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf
  2. /backup/backup.tar