Docker入门到实践 (五) docker数据的备份、恢复与迁移
文章目录一、前言二、docker数据的备份、恢复与迁移方式一:docker容器的备份、恢复与迁移1、docker容器的备份 (导出)2、docker容器的迁移与恢复 (导入)方式二:docker镜像的备份、恢复与迁移1、docker镜像的备份 (导出)2、docker镜像的迁移与恢复 (导入)方式三:docker数据卷的备份、恢复与迁移1、docker数据卷的备份 (导出)2、docker数据卷的
文章目录
一、前言
在上一篇文章中已经介绍了docker容器数据卷与数据卷容器, 下面正式进入到docker数据的备份、恢复与迁移的讲解。
二、docker数据的备份、恢复与迁移
有时在docker中产生的数据,我们需要进行相应的备份和迁移到另外一台服务器上,并在另一台服务器上进行数据的恢复,那么改如何操作呢?如下将介绍三种方式进行数据的备份、恢复与迁移:
方式一:docker容器的备份、恢复与迁移
1、docker容器的备份 (导出)
docker export -o 容器导出文件(格式为tar压缩文件) 容器ID或容器名称
或
docker export 容器ID或容器名称 > 容器导出文件(格式为tar压缩文件)
示例:
docker export -o $(pwd)/newtomcat.tar mytomcat
或
docker export mytomcat > $(pwd)/newtomcat.tar
注释:
$(pwd)是docker支持的获取当前目录路径的方法,与linux的pwd类似
$(pwd)/newtomcat.tar 表示在当前目录下生成一个newtomcat.tar压缩文件
备注:
容器可以不启动进行备份操作
2、docker容器的迁移与恢复 (导入)
docker import 容器导出文件(格式为tar压缩文件) 新镜像名称[:版本号]
或
docker import /URL 新镜像名称[:版本号]
示例:
docker import $(pwd)/newtomcat.tar newtomcat:v1.0
或
docker import http://example.com/exampleimage.tgz example/imagerepo
方式二:docker镜像的备份、恢复与迁移
1、docker镜像的备份 (导出)
docker save -o 镜像导出文件(格式为tar压缩文件) 镜像ID或镜像名称[:版本号]
或
docker save 镜像ID或镜像名称[:版本号] > 镜像导出文件(格式为tar压缩文件)
示例:
docker save -o $(pwd)/mytomcat.tar newtomcat:v1.0
或
docker save newtomcat:v1.0 > $(pwd)/mytomcat.tar
2、docker镜像的迁移与恢复 (导入)
docker load -i 镜像导出文件(格式为tar压缩文件)
或
docker load < 镜像导出文件(格式为tar压缩文件)
示例:
docker load -i $(pwd)/mytomcat.tar
或
docker load < $(pwd)/mytomcat.tar
注意:用户既可以使用 docker load
来导入镜像存储文件
到本地镜像库,也可以使用 docker import
来导入一个容器快照
到本地镜像库。这两者的区别在于容器快照文件
将丢弃所有的历史记录和元数据信息
(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大
。此外,容器快照文件
方式导入可以重新指定镜像标签等元数据信息
。
方式三:docker数据卷的备份、恢复与迁移
1、docker数据卷的备份 (导出)
//单个数据卷的备份
docker run --volumes-from 数据卷容器ID/数据卷容器名称 -v 宿主机备份目录:容器备份目录 镜像ID/镜像名称[:版本号] tar cvf 容器目录/数据卷压缩文件(格式为tar压缩文件) 容器数据卷文件/目录
//多个数据卷的备份
docker run --volumes-from 数据卷容器ID/数据卷容器名称 -v 宿主机备份目录:容器备份目录 镜像ID/镜像名称[:版本号] tar cvf 容器目录/数据卷压缩文件(格式为tar压缩文件) 容器数据卷文件1/目录1 容器数据卷文件2/目录2
示例:
//单个数据卷的备份
docker run --volumes-from mycentos -v $(pwd):/backup centos tar cvf /backup/newcentos.tar /containerVolume
//多个数据卷的备份
docker run --volumes-from mycentos -v $(pwd):/backup centos tar cvf /backup/newcentos.tar /containerVolume1 /containerVolume2
//如果想要在执行完备份指令后,删除临时容器,请在run 后面加上--rm属性,表示在执行完后立即删除该容器
docker run --rm --volumes-from mycentos -v $(pwd):/backup centos tar cvf /backup/newcentos.tar /containerVolume
注意:
- 数据卷容器可以
不启动(即容器退出停止)
进行备份操作 - 这里的
数据卷压缩文件的路径
要选择导出到容器备份目录下
,即 如果容器备份目录
为/backup,则数据卷压缩文件的路径
为/backup/newcentos.tar
,因为宿主机备份目录
与容器备份目录
做了数据卷挂载
,只有将数据卷压缩文件的导出路径
选择在容器备份目录
下,才能同步到宿主机备份目录
下。
2、docker数据卷的迁移与恢复 (导入)
//单个数据卷 与 多个数据卷的 数据卷恢复指令相同
docker run --volumes-from 需要恢复数据的数据卷容器ID/名称 -v 宿主机备份目录:容器备份目录 镜像ID/镜像名称[:版本号] tar xvf 容器备份目录/数据卷压缩文件(格式为tar压缩文件)
示例:
docker run --volumes-from mycentos -v $(pwd):/backup centos tar xvf /backup/newcentos.tar
//如果想要在执行完数据恢复指令后,删除临时容器,请在run 后面加上--rm属性,表示在执行完后立即删除该容器
docker run --rm --volumes-from mycentos -v $(pwd):/backup centos tar xvf /backup/newcentos.tar
注意:
-
需要恢复数据的数据卷容器可以
不启动(即容器退出停止)
进行数据恢复操作 -
如果要把数据卷恢复到
新的容器
中,那么新的容器
中的数据卷
要与之前备份的容器数据卷的路径和名称要一致
,(即:之前要备份的容器数据卷
为/data
或者/var/containerVolume
,那么新容器
的数据卷
的路径和名称也要为/data
或者/var/containerVolume
),例子:之前需要备份的容器与宿主机的挂载情况为-v ~/hostVolume:/containerVolume
,那么需要备份的新容器与宿主机的挂载情况为:-v ~/host:/containerVolume
,即新容器数据卷的路径和名称 要与 备份的容器数据卷路径和名称必须一致,为/containerVolume
,宿主机的数据卷路径和名称可以不一致 -
这里的
数据卷压缩文件
要选择容器备份目录下
的,(即 如果容器备份目录
为/backup
,则数据卷导出文件的路径
为/backup/newcentos.tar
)
1、删除数据卷容器mycentos中的数据卷里的data.txt文件,模拟数据的丢失
2、对丢失数据的数据卷容器mycentos 进行数据的恢复
Docker入门到实践系列文章列表:
Docker入门到实践 (一) docker简介与安装
Docker入门到实践 (二) docker常用命令讲解
Docker入门到实践 (三) Dockerfile解析与镜像制作
Docker入门到实践 (四) docker容器数据卷与数据卷容器
Docker入门到实践 (五) docker数据的备份、恢复与迁移
Docker入门到实践 (六) docker网络模式详解以及容器间的网络通信
Docker入门到实践 (七) docker常用软件的安装
Docker入门到实践 (八) 本地镜像推送到阿里云 和 下载镜像到本地
Docker入门到实践 (九) docker可视化界面portainer的安装与使用
Docker入门到实践 (十) IDEA集成Docker构建容器镜像,部署项目
Docker入门到实践 (十一) docker私有仓库的搭建与配置
Docker入门到实践 (十二) docker compose简介与安装
Docker入门到实践 (十三) docker compose配置文件与常用命令讲解
Docker入门到实践 (十四) docker企业级容器镜像仓库HarBor的搭建与配置
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)