Docker 利用数据卷容器来备份、恢复、迁移数据
在 Docker 容器之间如果需要共享数据,可以创建一个数据卷容器来实现,并且可以方便的通过数据卷容器来备份、恢复、迁移数据。
创建数据卷容器
创建一个名为:dbdata 的数据卷容器;设置挂载点为 /vdata
。
$ sudo docker run -d -v /vdata --name dbdata alpine sh
数据卷容器是一个普通的 Docker 容器,可以不需要启动。
使用数据卷容器
使用命令 --volumes-from
创建挂载数据卷容器 dbdata 的容器:db1、db2。
$ sudo docker run -it --volumes-from dbdata --name db1 alpine sh
$ sudo docker run -it --volumes-from dbdata --name db1 alpine sh
在容器 db1 的挂载目录 /vdata
目录下,创建文件 1.txt 等测试数据,查看容器 db2 的挂载目录 /vdata
目录,就可以看到创建的文件数据了。
备份数据卷数据
使用一个临时容器,完成备份数据容器操作。
$ sudo docker run --rm --volumes-from dbdata -v $(pwd):/backup alpine tar cvf /backup/vdata-bak.tar /vdata
使用 tar cvf
命令,备份数据卷容器 dbdata 中的目录 /vdata
为 vdata-bak.tar
,并挂载到宿主机的当前目录下。
恢复数据卷数据
创建数据卷容器:dbdata2
$ sudo docker run -d -v /vdata --name dbdata2 alpine sh
使用一个临时容器,恢复备份数据 vdata-bak.tar
到 dbdata2
$ sudo docker run --rm --volumes-from dbdata2 -v $(pwd):/backup alpine tar xvf /backup/vdata-bak.tar
使用一个临时容器,查看 dbdata2 恢复的数据:
$ sudo docker run --rm --volumes-from dbdata2 alpine /bin/ls /vdata