前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker容器如何备份?

Docker容器如何备份?

作者头像
louiezhou001
发布2021-11-01 15:36:14
5.1K0
发布2021-11-01 15:36:14
举报

背景:

为什么要备份容器?

作为一名合格的程序猿, 时时刻刻都要思考应用或者(service)的容错以及灾备, 他是保障我们日后快速恢复工作必不可少的条件.

容器由于种种原因会损坏而无法正常work, 这时候全公司的人都等着这个系统使用, 这是后排查问题还不如直接使用一个备份镜像更为便捷和快速 .

备份容器:

1. 在远程主机上查看当前容器列表

docker ps -a

[zhouhuwei@localhost ~]$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

403e6db0c jenkins/jenkins "/sbin/tini -- /usr/…" 9 days ago Up 9 days 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp jenkins

a7d775e3d mysql "docker-entrypoint.s…" 10 days ago Up 9 days 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp

2.制作容器备份

docker commit -p 403e6db0c jenkins_backup

其中 403e6db0c 是容器id, jenkins_backup是备份名称

3. 查看备份是否成功

docker images

[zhouhuwei@localhost ~]$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

mysql_backup latest a35fea6c 37 minutes ago 514MB

jenkins_backup latest edfced2 38 minutes ago 444MB

确认已经成功备份

4. 将镜像制作成文件

说明:

使用docker save 可能需要使用root权限

保存的命令是:

docker save -o [filename] [image]

[zhouhuwei@localhost ~]$ docker save -o jenkins_backup.tar jenkins_backup

[zhouhuwei@localhost ~]$ ls

jenkins_backup.tar

备份文件制作完成

5. 在本地使用命令将镜像从远程备份到本地

louie-mac:~ louiezhou$ scp zhouhuwei@192.168.10.10:/home/zhouhuwei/jenkins_backup.tar /Users/louiezhou/home/sf/DockerImageBackup

zhouhuwei@192.168.10.10's password:

jenkins_backup.tar 100% 639MB 7.7MB/s 01:23

备份到本地目录是:/Users/louiezhou/home/sf/DockerImageBackup

到此就将镜像备份到本地, 我们去对应目录check下:

louie-mac:~ louiezhou$ cd /Users/louiezhou/home/sf/DockerImageBackup

louie-mac:DockerImageBackup louiezhou$ ls -lh

total 1310752

-rw------- 1 louiezhou staff 639M 10 18 10:42 jenkins_backup.tar

恢复容器:

1. 为了验证容器是否能正常导入, 先删除docker 里的镜像

docker rmi jenkins

2.导入

docker load < /Users/louiezhou/home/sf/DockerImageBackup/jenkins_backup.tar

louie-mac:sf louiezhou$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

jenkins_backup latest edfced27a56e 32 minutes ago 444MB

3.运行镜像

sudo docker run -p 8080:8080 -name jenkins -d jenkins_backup

4. 启动成功

903e6db0c jenkins/jenkins "/sbin/tini -- /usr/…" Up 1 min 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp jenkins

温馨提示:文字上有错位的建议在电脑端阅读更为友好.

总结:

测试是一门技术, 更是一门艺术. 也许你今天拥有的技术, 明天就会被淘汰. 同时需要我们开拓思维和眼界, 积极拥抱变化, 学习新知识, 新方法,新技能, 计算机领域讲究的是实践, 学习更要讲究方式方法. 学习和动手一定要结合, 光看不练,犹如看武功秘籍, 是永远成不了武功大侠的.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试工程师成长之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档