docker 数据备份于迁移

多个-v就可指定多个挂载目录
数据卷:
数据卷是一个可供使用的特殊目录,它绕过文件系统,解决由于容器无守护进程而退出的容器,数据修改保存的问题。特性 :
1.数据卷可以在容器之间共享和重用
2. 对数据卷的修改立马生效
3.对数据卷的更新不会影响镜像
4.卷会一直存在直到没有容器使用 类似于mount挂载
A. 创建数据卷:
docker run时使用-v参数可以再容器内创建一个数据卷
docker run --name data -v /data -t -i centos /bin/bash
查看数据卷对应的宿主机的路径 : docker inspect data
B. 创建一个宿主机目录作为数据卷:
docker run -d -P --name web -v 主机目录:容器目录 -ti centos /bin/bash
C. 挂载一个本机单文件作为数据卷:
docker run --rm -it -v ~/.bash_history:/.bash_history centos /bin/bash
 
 
数据卷容器
其实仅为一个普通容器,让其他容器挂载到此容器上。
A.创建数据卷容器/dbdata
docker run -ti -v /dbdata --name dbdata centos

B.让其他容器db1挂载到此容器:

docker run -ti --volumes-from dbdata --name db1 centos
 
删除数据卷容器
docker rm dbdata
删除数据卷
docker rm -v /dbdata
 
数据卷容器迁移数据
备份
docker run --volumes-from dbdata -v $(pwd):/backup --name worker centos
tar -zcvf /backup/backup.tar.gz /dbdata ---新建容器内部执行
利用centos镜像创建一个worker容器,将worker容器挂载dbdata容器的数据卷,使用-v参数将本地当前目录挂载到worker容器的/backup目录。 容器启动后将backup打包,最后保存在本地目录。
 
恢复
创建带数据卷的dbdata2容器
docker run -v /dbdata --name dbdata2 centos -ti /bin/bash
创建一个新的容器挂载到dbdata2
docker run --volumes-from dbdata2 --name huifu -v $(pwd):/backup tar zxvf backup.tar.gz
 
posted @ 2017-08-16 17:23  阮小七  阅读(2368)  评论(0编辑  收藏  举报