如何实现Docker镜像和容器实例的备份迁移
题记
大家在使用Docker都会从容器仓库下载镜像,不过这个过程可能依据网络带宽而定,那么如果将一个已经下载好的镜像迁移到另外一个环境中,或者说如何实现Docker容器的备份恢复,或者迁移,接下来我们一块探讨一下。
大家都知道,Docker的文件系统是AUFS,所以我们的镜像有可能是从N个镜像基础上进行Commit一个新的,所以不可能获得docker镜像的物理文件进行迁移,好在docker也给大家提供了相关命令实现备份操作。
目标
从源容器环境 192.168.14.1 中将google/cadvisor镜像迁移到192.168.13.120里面
1、查看192.168.14.1环境的镜像列表
- root@controller:~# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- ubuntu_desktop_v1 latest 3b97d2c886e0 4 days ago 971.3 MB
- ubuntu_desktop latest 8421b0d33543 7 days ago 946.8 MB
- spark-master latest 4cf819691dca 7 days ago 266.3 MB
- spark-base-2 latest df1c40938e7f 9 days ago 266.3 MB
- spark-base-1 latest c091a4c160b7 9 days ago 266.3 MB
- spark-base-0 latest 6c41bd72fccd 9 days ago 266.3 MB
- spark-base latest 54c3c018a5e0 9 days ago 261.1 MB
- ubuntu base-spark a2101fbeeaac 11 days ago 261.1 MB
- deploy_mysql latest 8f70bd4222b1 2 weeks ago 324.7 MB
- deploy_ui latest 3d35eaace8bf 2 weeks ago 765.3 MB
- deploy_log latest 7f9db19786b2 2 weeks ago 188 MB
- 192.168.14.1:5008/ubuntu-local2 14.04 b72889fa879c 2 weeks ago 188 MB
- localhost:5008/ubuntu-local 14.04 b72889fa879c 2 weeks ago 188 MB
- ubuntu 14.04 b72889fa879c 2 weeks ago 188 MB
- ubuntu latest b72889fa879c 2 weeks ago 188 MB
- registry 2 88ecdbb5a908 2 weeks ago 171.1 MB
- swarm latest 0f1a3829719c 2 weeks ago 18.71 MB
- mysql 5.6 f2e8d6c772c0 2 weeks ago 324.6 MB
- haproxy latest 55fc47c91e3b 3 weeks ago 139 MB
- nginx 1.9 eb4a127a1188 3 weeks ago 182.7 MB
- django latest f9dac9187119 3 weeks ago 451 MB
- ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB
- redis latest 4f5f397d4b7c 8 weeks ago 177.6 MB
- registry 2.3.0 5eaced67751b 8 weeks ago 165.7 MB
- google/cadvisor latest a56e3f67a48d 9 weeks ago 46.33 MB
- registry latest bca04f698ba8 3 months ago 422.9 MB
- golang 1.5.1 e62abe1305a5 5 months ago 709.3 MB
- sequenceiq/hadoop-docker latest 5c3cc170c6bc 9 months ago 1.766 GB
2、通过docker save命令,将镜像保存为tar文件
- root@controller:~# docker save -o /root/google-cadvisor.tar google/cadvisor
- root@controller:~# ls
- admin-openrc.sh docker google-cadvisor.tar pipework
- root@controller:~# ll
- total 46312
- drwx------ 8 root root 4096 May 3 11:20 ./
- drwxr-xr-x 23 root root 4096 Apr 14 10:53 ../
- -rw-r--r-- 1 root root 135 Apr 11 10:35 admin-openrc.sh
- -rw------- 1 root root 37672 Apr 29 17:39 .bash_history
- -rw-r--r-- 1 root root 3106 Feb 20 2014 .bashrc
- drwx------ 2 root root 4096 Apr 14 16:10 .cache/
- drwxr-xr-x 2 root root 4096 Apr 21 22:36 docker/
- -r-------- 1 root root 20 Apr 11 00:00 .erlang.cookie
- -rw------- 1 root root 47311360 May 3 11:20 google-cadvisor.tar
- -rw------- 1 root root 1727 Apr 19 11:50 .mysql_history
- drwxr-xr-x 3 root root 4096 Apr 11 10:54 .novaclient/
- drwxr-xr-x 4 root root 4096 Apr 26 10:37 pipework/
- -rw-r--r-- 1 root root 140 Feb 20 2014 .profile
- drwx------ 2 root root 4096 Apr 14 16:10 .ssh/
- drwxr-xr-x 2 root root 4096 Apr 29 17:01 .vim/
- -rw------- 1 root root 11959 Apr 29 17:01 .viminfo
保存为tar文件之后,我们就可以将这个文件以物理形式拷贝到192.168.13.120容器环境中了。
1、查看目标环境的镜像列表
- root@controller:~# docker images
- REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
- ubuntu latest b1e98eb57559 7 days ago 120.1 MB
- ubuntu/pipework latest a161cd7260da 7 days ago 226 MB
- ubuntu/mysql latest 62b80c65d15b 4 months ago 373.3 MB
- ubuntu/os latest 39eea0e53d4e 5 months ago 653.2 MB
- ubuntu 14.04 1d073211c498 6 months ago 187.9 MB
- ubuntu 14.04.3 1d073211c498 6 months ago 187.9 MB
- ubuntu 12.04 0ac5b09d8536 6 months ago 136.1 MB
- tutum/ubuntu latest 151c4704c045 10 months ago 251.5 MB
- training/sinatra latest f0f4ab557f95 23 months ago 447 MB
2、通过docker load命令将tar文件加载进来
- root@controller:~# ls
- aksusbd docker-static-ip-master master.zip sinatra SuperMapiCloudManager7C
- Dockerfile google-cadvisor.tar pipework-master supermap_iCloud_711_30278_255_linux64.tar.gz SuperMapiServer
- root@controller:~# docker load -i /root/google-cadvisor.tar
- root@controller:~# docker images
- REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
- ubuntu latest b1e98eb57559 7 days ago 120.1 MB
- ubuntu/pipework latest a161cd7260da 7 days ago 226 MB
- google/cadvisor latest 77ab3045082e 9 weeks ago 46.33 MB
- ubuntu/mysql latest 62b80c65d15b 4 months ago 373.3 MB
- ubuntu/os latest 39eea0e53d4e 5 months ago 653.2 MB
- ubuntu 14.04 1d073211c498 6 months ago 187.9 MB
- ubuntu 14.04.3 1d073211c498 6 months ago 187.9 MB
- ubuntu 12.04 0ac5b09d8536 6 months ago 136.1 MB
- tutum/ubuntu latest 151c4704c045 10 months ago 251.5 MB
- training/sinatra latest f0f4ab557f95 23 months ago 447 MB
我们可以看到,google/cadvisor镜像已经加载进来,然后启动即可。
- root@controller:~# docker run \
- > --volume=/:/rootfs:ro \
- > --volume=/var/run:/var/run:rw \
- > --volume=/sys:/sys:ro \
- > --volume=/var/lib/docker/:/var/lib/docker:ro \
- > --publish=8080:8080 \
- > --detach=true \
- > --name=cadvisor \
- > google/cadvisor:latest
- 046ad9524cc9a92f118869aae7d10f04c6dfb6e215051f07ea47a5a91ea34e22
- root@controller:~# docker ps -a
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 046ad9524cc9 google/cadvisor:latest "/usr/bin/cadvisor -l" 32 seconds ago Up 31 seconds 0.0.0.0:8080->8080/tcp cadvisor
- 54fd72ea7832 ubuntu:14.04 "/bin/bash" 5 days ago Up 2 hours test1
总结
通过这种简单的方式,我们可以对docker镜像、实例进行备份、恢复、迁移(备份和恢复),这对于我们docker交换非常方便。
转自:https://blog.csdn.net/chinagissoft/article/details/51303129
藏经阁技术资料分享群二维码
如何实现Docker镜像和容器实例的备份迁移的更多相关文章
- docker镜像和容器的导出导入
本文介绍docker镜像和容器的导入导出,用于迁移.备份.升级等场景.主要用到export.import.save.load四个方法. 原文地址:代码汇个人博客 http://www.codehui. ...
- Docker镜像和容器
本节内容: 安装Docker 卸载docker 镜像基本操作 容器基本操作 一.安装Docker Docker 对 Linux 内核版本的最低要求是3.10,如果内核版本低于 3.10 会缺少一些运行 ...
- docker镜像与容器
目录 docker镜像与容器 概述 分层存储 镜像与容器 删除镜像与容器 将容器中的改动提交到镜像 慎用 docker commit--构建镜像推荐使用dockerfile docker镜像与容器 概 ...
- 快速批量删除 docker 镜像或容器
原文:快速批量删除 docker 镜像或容器 点击在我的博客 xuxusheng.com 中查看,有更好的排版哦~ docker 本身并没有提供批量删除的功能,当有大量的镜像或者容器需要删除的时候,手 ...
- docker系列四之docker镜像与容器的常用命令
docker镜像与容器的常用命令 一.概述 docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人 ...
- Docker容器化【Docker镜像与容器相关命令】
# Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用 ...
- docker 入门(docker 镜像 、容器、仓库)
一.关于docker 镜像 .容器.仓库之间的关系 镜像(Image): 类似于虚拟机 的镜像 容器(Container): 类似于操作系统(或者说是独立的软件), 由镜像可以创建大量的容器. 仓库( ...
- 【docker专栏8】使用IDEA远程管理docker镜像及容器服务
使用命令行的方式管理服务器镜像及容器是运维人员最常用的方式,但是有的时候我们不得不远程操作docker或者是面向对docker并不熟悉的技术人员提供能力(配置管理员.测试人员),这种情况下图形界面就有 ...
- 简述Docker镜像、容器、仓库概念
Docker镜像 Docker镜像(Image)类似于虚拟机的镜像,可以将他理解为一个面向Docker引擎的只读模板,包含了文件系统. 例如:一个镜像可以完全包含了Ubuntu操作系统环境,可以把它称 ...
随机推荐
- Markdown中插入图片技巧收集
在操作Markdown时图片应该是最头痛的一件事! 比如要发送一个md文件给对方,如果附带了图片时,那么就要一大堆文件包括图片发给对方等等,如果使用在线图片,那么这个服务器又是一大痛点,因为你不确定这 ...
- vs npm设置淘宝npm
VS2017自带的npm会去国外的镜像下载文件, 奇慢无比, 还是马云家淘宝的镜像适合国内用户. 淘宝npm镜像地址: https://registry.npm.taobao.org VS中使用淘宝 ...
- 学习swift从青铜到王者之swift枚举07
空枚举 //空枚举 enum SomeEnumeration { // enumeration definition goes here } 枚举基本类型 //枚举基本类型 enum CompassP ...
- 一起talk C栗子吧(第一百回:C语言实例--使用信号量进行进程间同步与相互排斥一)
各位看官们.大家好,上一回中咱们说的是进程间同步与相互排斥的样例,这一回咱们说的样例是:使用信号量进行进程间同步与相互排斥. 闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,信号量是由著名 ...
- django 简易博客开发 4 comments库使用及ajax支持
首先还是贴一下源代码地址 https://github.com/goodspeedcheng/sblog 上一篇文章我们介绍了静态文件使用以及如何使用from实现对blog的增删改,这篇将介绍如何给 ...
- How do you check if a variable is an array in JavaScript? [duplicate]
https://stackoverflow.com/questions/767486/how-do-you-check-if-a-variable-is-an-array-in-javascript ...
- 公布Java桌面程序
我拿了一份桌面工具的开源码,修改动改,在elipse上执行.感觉良好.但到了公布应用程序,就傻眼了. 我竟然不知道咋公布! 呵呵,不愧是Java小白. 假设是微软阵营,直接就编译成exe了. 但jav ...
- 《Spring设计思想》AOP设计基本原理
0.前言 Spring 提供了AOP(Aspect Oriented Programming) 的支持, 那么,什么是AOP呢?本文将通过一个另外一个角度来诠释AOP的概念,帮助你更好地理解和使用Sp ...
- windows下 sqlplus / as sysdba 报ora-12560的终极解决方法
windows下 sqlplus / as sysdba 报ora-12560的终极解决方法 本文是原创文章.转载请注明出处:http://blog.csdn.net/msdnchina/articl ...
- 各项异性滤波简单介绍Anisotropic Filtering(AF)
本文主要整理简绍来自互联网的各项异性滤波的知识. 原文链接:http://www.linuxgraphics.cn/graphics/using_anisotropic_texture_filteri ...