docker容器备份、恢复和迁移volume方案
2023-09-27 14:25:28 时间
volume作为数据的载体,在很多情况下需要对其中的数据进行备份、迁移或是恢复。下面一docker容器的volume为例,说一下备份的技巧。 我们先建立一个容器vol_simple,该容器在/date挂载了一个volume。 $ sudo docker run -it --name vol_simple -v /data ubuntu /bin/bash 如果我们需要将这里的数据备份,一个很容易想到的办法是使用docker inspect命令查找/date在宿主机上对应的文件夹位置,然后复制其中内容或是使用tar进行打包,同样如果需要恢复某个volume中的数据,可以查找到volume对应的文件夹,将数据复制进这个文件夹或者使用tar恢复。但这些笨拙的做法并不值得推荐,因为查找主机上文件夹后在再操作容易出错,也不适合脚本的自动化。 备份volume可以使用一下方法。 $ sudo docker run --rm --vloumes-from vol_simple -v$(pwd):/backup ubuntu tar cvf /backup/data.tar /data 这个指令启动了一个临时的容器,这个容器挂载了两个volume,第一个volume与要备份的volume共享,第二个volume将宿主机的当前目录挂载到容器的/backup下。容器运行后将要备份的内容(/data文件夹)备份到/backup/data.tar,然后删除容器,备份后的data.tar就留在了当前目录。 恢复volume方法: $ sudo docker run -it --name vol_bck -v /data ubuntu /bin/bash $ sudo docker run --rm --volumes-from vol_bck -v $(pwd):/backup ubuntu tar xvf /backup/data.tar -C / 首先运行了一个新容器作为数据恢复的目标。第二行指令启动了一个临时容器,这个容器挂载了两个volume,第一个volume与要恢复的volume共享,第二个将宿主机的当前目录挂载到容器的/backup下。由于之前备份的data.tar在当前目录下,那么它在容器中的/backup也能访问到,容器启动后将这个存档文件中的/data恢复到跟目录下,然后删除容器,恢复后的数据在vol_bck的volume中了。
相关文章
- 基于docker搭建测试环境
- Docker容器的数据卷(data volume),数据卷容器,数据卷的备份和还原
- docker内操作docker
- Docker从入门到进阶之进阶操作(1)—— 对Docker的网络进行管理
- Docker入门(一)用hello world入门docker
- [Docker] 02 - Dockerfile
- CentOS7.4下使用docker运行mongodb,对原有mongodb备份及迁移
- 如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目
- docker安装配置
- Docker网络 (二)
- Docker 容器备份例子
- [手把手系列之] Jenkins+Docker自动化部署vue项目
- Swoft 新手向教程 - 通过 Docker 搭建一个开发环境
- 在Windows上弄一个redis的docker容器
- 多主机网络下 Docker Swarm 模式的容器管理
- 备份基于Docker的PostgreSQL数据库
- Engine Yard的Deis平台推出基于Docker的PaaS商业支持
- 客快物流大数据项目(十二):Docker的迁移与备份
- docker环境下mysql数据库的备份
- Docker数据卷容器备份、恢复