linux docker导入镜像,Docker镜像的导入和导出

相关阅读:

场景描述:

需要在客户现场快速部署应用,东西多,时间短

场景分析:

为了节省时间,使用docker进行快速部署,由于不是内部环境,无法使用内部私有库,于是构建镜像,将镜像导出

解决办法:

使用dockerfile构建应用镜像,将镜像导出,在部署的节点上将镜像导入,启动容器即可

镜像导入和导出:

docker提供了把镜像导出为文件的机制,有两种方式:

1.save / load   保存/加载

save有两种

第一种:

docker save 镜像id > 目录/XXX.tar

第二种(推荐):

docker save repository:tag > 目录/XXX.tar

load命令如下:

docker load < XXX.tar

2.export / import  导出/导入

export命令如下:

docker export 容器名 > XXX.tar

import命令:

docker import XXX.tar REPOSITORY:TAG

这两种方式都能都导出,但是细节不同,先进行对比,后通过实例演示

导出的对象

导出文件大小

是否可回滚到历史层

save / load

将镜像导出

export / import

将容器导出

从本质上来说,save/load导出的是镜像,export/import导出的是容器,大家不要弄混

相对于文件大小来说,save方式导出的文件比export方式导出的文件大

正是因为save方式保存了镜像的历史和层(layer),使其可以层回滚,即回滚到之前的历史层,所以save方式导出的文件稍微大一些

反观export方式,在导出过程中丢失所有的历史,导致其不可以层回滚,导出的文件会小一些

演示:

下面通过实例,对这两种方式进行演示和对比

save / load 方式

1.save 保存镜像

这里有一个构建好的镜像

[root@uat-app01 /]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

centos_ssh latest ae0548244885 10 days ago 285 MB

先查看该镜像的历史层

注意:

docker images –tree命令已被弃用,现已用docker history +镜像id命令

[root@uat-app01 /]# docker history ae0548244885

IMAGE CREATED CREATED BY SIZE COMMENT

ae0548244885 10 days ago /bin/sh -c ln -snf /usr/share/zoneinfo/$TZ... 14 B

de38162f94f6 10 days ago /bin/sh -c #(nop) ENV TZ=Asia/Shanghai 0 B

64c78cfdb6d2 10 days ago /bin/sh -c #(nop) MAINTAINER yanwei

7a9653034358 2 weeks ago /bin/bash 81.1 MB

3fa822599e10 7 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B

7 months ago /bin/sh -c #(nop) LABEL name=CentOS Base ... 0 B

7 months ago /bin/sh -c #(nop) ADD file:7441d818786942a... 204 MB

导出该镜像,导出的镜像文件为280M

注意:

如果使用docker save + 镜像id方式导出,导入的镜像的REPOSITORY和TAG会显示为

方法1:

[root@uat-app01 /]# docker save ae0548244885 > /centos_ssh.tar

[root@uat-app01 /]# ll -sh /centos_ssh.tar

280M -rw-r--r-- 1 root root 280M Jul 17 11:20 /centos_ssh.tar

方法2:

[root@uat-app01 /]# docker save centos_ssh:latest > /centos_ssh2.tar

[root@uat-app01 /]# ll -sh /centos_ssh.tar

280M -rw-r--r-- 1 root root 280M Jul 17 11:31 /centos_ssh2.tar

2.load 加载镜像

将镜像导入到其他环境,加载镜像文件

先来加载方法1导出的镜像文件

[root@uat-ucs01 /]# docker load < /centos_ssh.tar

d1be66a59bc5: Loading layer [==================================================>] 212.1 MB/212.1 MB

610610a96352: Loading layer [==================================================>] 81.43 MB/81.43 MB

e5dab0be5e57: Loading layer [==================================================>] 3.072 kB/3.072 kB

Loaded image ID: sha256:ae0548244885ae05a4d8a3deab32bfeb0518697986586c3a1023579c8dc2d21c B/3.072 kB

查看该镜像,REPOSITORY和TAG都为

解决这种情况,使用docker tag添加标签,这里就不做演示了,多一步显得很冗余,推荐大家使用save的第二种方法导出

[root@uat-ucs01 /]# docker images -a

REPOSITORY TAG IMAGE ID CREATED SIZE

ae0548244885 10 days ago 284.7 MB

删除该镜像

再来加载方法2导出的镜像文件

[root@uat-ucs01 /]# docker load < /centos_ssh2.tar

d1be66a59bc5: Loading layer [==================================================>] 212.1 MB/212.1 MB

610610a96352: Loading layer [==================================================>] 81.43 MB/81.43 MB

e5dab0be5e57: Loading layer [==================================================>] 3.072 kB/3.072 kB

Loaded image: centos_ssh:latest

查看该镜像,REPOSITORY和TAG显示都正常

[root@uat-ucs01 /]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

centos_ssh latest ae0548244885 10 days ago 284.7 MB

export / import 方式

1.export 导出

这里有一个正在运行的容器,基础镜像也是centos_ssh

[root@uat-app01 /]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

2cc200d98a54 centos_ssh "/bin/bash" 14 seconds ago Up 10 seconds wizardly_babbage

将该容器导出,export方式导出的文件大小为258M,比save方式导出的文件小了22M

[root@uat-app01 /]# docker export 2cc200d98a54 > /centos_ssh.tar

[root@uat-app01 /]# ll -sh /centos_ssh.tar

258M -rw-r--r-- 1 root root 258M Jul 17 14:06 /centos_ssh.tar

2.import导入

在其他环境,将文件导入

[root@uat-ucs01 /]# docker import /centos_ssh.tar centos_ssh:latest

sha256:d1e984b716211a3b29b39f75d6c31a132844f9307d87e81c540364162e311074

查看导入的镜像

[root@uat-ucs01 /]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

centos_ssh latest d1e984b71621 4 seconds ago 261.2 MB

查看镜像的历史层,没有之前的历史层,只有从导入开始的历史层

[root@uat-ucs01 /]# docker history d1e984b71621

IMAGE CREATED CREATED BY SIZE COMMENT

d1e984b71621 21 seconds ago 261.2 MB Imported from -

至此,docker的导入和导出介绍完了,我们下篇文章见

亲,看完了点个赞呗!

17+

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有些图,只要看错一眼就再也回不去了!

全世界只有3.14 % 的人关注了爆炸吧知识平时在网络上逛&#xff0c;你会发现有种图片&#xff0c;一旦看茬&#xff0c;就再也回不去了&#xff01;今天就来集体复习一下&#xff1a;首先是这张著名的图&#xff0c;很可爱的小盆友但如果告诉你&#xff1a;那两个大黑点是鼻孔&…

2015年网页设计最佳颜色搭配的9种选择

2019独角兽企业重金招聘Python工程师标准>>> 2015年网页设计最佳颜色搭配的9种选择 还在为你的网站选用哪种色调发愁&#xff0c;难易选择吗&#xff1f;本篇为你总结了2015年国外网友设计最佳颜色搭配的9个方案&#xff0c;供你参考... 详细解读 和小伙伴们一起来吐…

CryEngine

最近CryEngine3已经发布了&#xff08;实际上已经到3.1了&#xff09;&#xff0c;看到很多朋友都想要拿到最新的版本&#xff0c;在这里附上具体的申请方法。楼主看到了&#xff0c;麻烦看看能不能置个顶。 CryEngine对于教育机构是有免费授权的。实际上授权也十分宽松&#x…

EF Core的一个紧急bug,我这样修改

1背景今日在生产环境碰到如下错误ASP.NET MVC项目 Repository层中&#xff0c;Delete总是失败another entity of the same type already has the same primary key value具体错误提示&#xff1a;Attaching an entity of type ResearchManager.Models.BigTracker_UI.Product_Tr…

电脑home键在哪_如何灵活使用电脑键盘上的各个键

电脑上的键有很多但是你真的了解它们的用法么&#xff0c;今天笔者给大家分享一下电脑键盘上各个键的作用。区域一&#xff1a;共有13个按键&#xff0c;ESC&#xff0c;F1-F2。F1&#xff1a;帮助信息。F2&#xff1a;选定一个文件或文件夹。按下F2可以重命名。F3&#xff1a;…

svn强制注释 linux,svn强制要求提交注释

看了N多资料&#xff0c;不知道为什么我总是不成功。现在终于测试成功了&#xff0c;下面是实际操作过程~~使用bitnami一键安装了subversion&#xff0c;在使用中&#xff0c;希望开发人员提交时必须输入日志内容&#xff0c;可通过以下方法实现。首先转到相应的库的hook目录中…

jquery easyui datagrid getSelections用法

1.datagrid、 数据绑定 $(#tt).datagrid({ url: GetDataJosn, title: DataGrid, width: 800, height: 300, pageSize: 10, idField: productid, fitColumns: true,…

XCode5 真机调试及发布应用

一、XCODE 真机测试 Xcode5已经很智能&#xff0c;只需生成一个开发证书&#xff0c;安装后&#xff0c;插入设备会自动添加&#xff0c;注意&#xff0c;当Mac系统升级后&#xff0c;证书需要重新生成。证书生成步骤&#xff1a;1、生成 CertificateSigningRequest.certSignin…

身家4400亿美元的他,吃低于3美元的早餐,和2个老婆同居28年!

全世界只有3.14 % 的人关注了爆炸吧知识1930年8月30日&#xff0c;巴菲特出生在美国内布拉斯加州的奥马哈市。当时的美国还笼罩在经济大萧条的阴影中&#xff0c;还好父亲是位出色的股票掮客&#xff0c;这也让小巴菲特的童年过得顺顺利利。但小巴同学从小就不合群&#xff0c;…

怎么才能把项目做烂?!

上一篇聊聊《为什么被用户牵着鼻子走&#xff1f;刚参加工作做项目常说的一句话&#xff1a;没有困难&#xff0c;制造困难也得上。到不是真闲得蛋疼制造困难&#xff0c;而是表达解决困难的决心。2009年在某煤炭集团做了一个动态监测煤质煤量的实时系统&#xff0c;当时一般为…

电脑重新分区扩大c盘_两种方法,给电脑C盘增加10G的容量,电脑焕然一新

在我们日常的生活工作中&#xff0c;手机电脑已经成为了不可或缺的存在。然而当我们的手机电脑经过长年累月的使用之后&#xff0c;手机电脑都会变得很卡&#xff0c;在电脑上最直观的显示就是电脑C盘分区显示为红色&#xff0c;可用空间已经不够用了。我们知道&#xff0c;电脑…

python wx提示框字体_使用wxStyledTextCtrl实现代码提示

wxStyledTextCtrl是wxPython对流行的Scintilla的包装&#xff0c;Scintilla的网站(http://www.scintilla.org/)&#xff0c;wxStyledTextCtrl是一个功能强大的富文本编辑控件&#xff0c;常见的编辑器功能都能找到&#xff0c;包括代码高亮&#xff0c;搜索替换&#xff0c;拷贝…

PHP5中PDO的简单使用

PDO(PHP Data Object) 是PHP 5新出来的东西&#xff0c;在PHP 6都要出来的时候&#xff0c;PHP 6只默认使用PDO来处理数据库&#xff0c;将把所有的数据库扩展移到了PECL&#xff0c;那么默认就是没有了我们喜爱的php_mysql.dll之类的了&#xff0c;那怎么办捏&#xff0c;我们…

redis在linux搭建集群,Linux/Centos 7 redis4 集群搭建

背景说明&#xff1a;项目初期使用AWS的ElastiCache Redis作为系统的数据缓存&#xff0c;近期由于数据量和QPS加大&#xff0c;导致Redis存在压力&#xff0c;进行了两次的单点垂直升级&#xff0c;缓解了目前的压力。项目组进行了数据和费用的评估&#xff0c;考虑到日后升级…

远程控制

我和舍友共用ADSL&#xff0c;我的电脑接在宽带路由器上面。为了能远程控制家里的电脑&#xff0c;我是煞费苦心&#xff0c;最后终于OK了&#xff0c;把一些经验心得写出来。 首先想要远程登录的机器最好是WinXP或者Win2003(据说Win2003更好一些&#xff0c;可以多用户同时登…

防SQL注入的最好实现方式是什么?

咨询区 LeonidasFett&#xff1a;我的问题是&#xff1a;如何在 C# 中是使用SQL防注入&#xff0c;我的模糊理解是可以通过限定应用程序接收的字段格式来实现最终目的&#xff0c;比如说&#xff1a;email字段只能接收email的格式&#xff0c;name字段不能输入特殊字符&#xf…

微软职位内部推荐-Senior SW Engineer for Application Ecosystem

微软近期Open的职位:Job posting title: Senior Development EngineerLocation: China, BeijingDivision: Operations System Group Engineering&nbsp Group OverviewOSG is delivering flagship products in Microsoft. China is a second largest economy in the world. …

数学除了摧残祖国的花朵外,竟然还可以赢钱!

全世界只有3.14 % 的人关注了爆炸吧知识端午节假期结束了&#xff0c;知识君又可以开心地回到工作岗位上了。我热爱学习&#xff0c;也热爱工作。这两天&#xff0c;知识君又听到了“哼&#xff0c;数学除了摧残我们这些祖国的花朵之外&#xff0c;然而并没有什么卵用。”知识君…

rocketmq 顺序消费_10 分钟看懂消息队列 RocketMQ

RocketMQ 是阿里巴巴在2012年开源的分布式消息中间件&#xff0c;目前已经捐赠给 Apache 软件基金会&#xff0c;并于2017年9月25日成为 Apache 的顶级项目。作为经历过多次阿里巴巴双十一这种“超级工程”的洗礼并有稳定出色表现的国产中间件&#xff0c;以其高性能、低延时和…

[Tyvj1114 搭建双塔]

[题目来源]&#xff1a;VIjos [关键字]&#xff1a;动态规划 [题目大意]&#xff1a;用n块水晶搭建两个塔&#xff0c;要求双塔必须一样高&#xff0c;问最大能达到的高度为多少。 // [分析]&#xff1a;用f[i,j]表示使用前i个水晶,建起高度差为j的双塔时,较矮的那个塔的最大高…