在docker中,可以利用数据卷容器对其中的数据卷进行备份,恢复,以实现数据的迁移。
1.备份
docker run --volumes-from dbdata -v $(pwd):/backup --name worker1 centos tar cvf /backup/backup.tar /dbdata
tar: Removing leading `/' from member names
/dbdata/
/dbdata/test
这个命令的含义是:首先利用centos镜像创建了一个容器worker1。使用--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
[root@localhost ~]# docker run -v /dbdata --name dbdata2 centos /bin/bash
然后创建另一个新的容器,挂载dbdata2的容器,并使用tar 解压备份文件到所挂载的容器卷中:
[root@localhost ~]# docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
90e01955edcd: Pull complete
Digest: sha256:2a03a6059f21e150ae84b0973863609494aad70f0a80eaeb64bddd8d92465812
Status: Downloaded newer image for busybox:latest
dbdata/
dbdata/test
转载于:https://blog.51cto.com/13658834/2333243