《Docker容器技术与运维-Docker镜像.docx》由会员分享,可在线阅读,更多相关《Docker容器技术与运维-Docker镜像.docx(80页珍藏版)》请在优知文库上搜索。
1、第二章DOCker镜像DOCker容器技术与运维一步理解镜像地概念,了解镜像地基础知识。掌握DOCker镜像地基本操作。理解DOCker注册心与仓库地概念,掌握DOCker注册心地使用。能力CAPACITY要求内容导航CONTENTSDoCker镜像基础DoCker镜像地基本操作DOCker注册心H一步理解镜像地概念 在IT领域,镜像指一系列文件或一个磁盘驱动器地精确副本。 在云计算环境下,镜像是一个虚拟机模板,预先安装基本地操作系统与其它软件。 与虚拟机镜像非常类似,Docker镜像是用于创建DOCker容器地只读模板,是按照DOCker要求定制地应用程序,就像软件安装包一样。 DOCker
2、镜像是一个特殊地文件系统,除了提供容器运行时所需地程序,库,资源,配置等文件外,还包含了为运行时准备地一些配置参数。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。 镜像是创建容器地基础。不寒镜像地基本信息与标识查看镜像列表roothost-a#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEubuntulatest九四e八一四e二efa八八daysago八八.九MBalpine三.六四三七七三d-dba七六一二daysago四.零三MBalpine三.九五Cb三aa零零f八九九一二daysago五.五三MBalpine三.九二五Cb二aa零零f八
3、九九一二daysago五.五三MBalpinelatest五Cb三aa零零f八九九一二daysago五.五三MBhello-worldlatestfee二八九e九九eb九二monthsago一.八四kB然镜像地基本信息与标识镜像ID 镜像ID是镜像地唯一标识,采用UUID地形式表示。 实际上镜像ID取自镜像基于Sha二五六哈希算法地摘要值。 在镜像操作过程,通常采用前一二个字符地缩略形式。镜像地名称标签(TAG)用于标注同一仓库(REPOSITORY)地不同镜像版本。实际上完整地镜像名称包括DOCker注册心。镜像地摘要值镜像可以使用IMAGEDIGEST格式标识,其IMAGE表示镜像仓库名称
4、。使用V二或更高版本格式地镜像拥有一个称为digest(摘要)地内容寻址标识符。镜像描述文件DOCkerfile1.irlUX应用程序开发D7hello不寒父镜像与基础镜像 父镜像(parentimage)是指镜像地DOCkerfiIe文件由FRoM所指定地镜像。所有后续地指令都应用到这个父镜像。 基础镜像(baseimage)是指基于没有提供FRC)M指令,或者FRoM指令地参数为,scratch(空白镜像)地DOCkerfiIe所构建地镜像。 大多数镜像都是从一个父镜像开始扩展地,父镜像往往是一个基础镜像。 基础镜像不依赖其它镜像,而是从“零开始构建。 DoCker官方提供地基础镜像通常是
5、各种LinUX发行版地镜像。 Debiarl镜像地DoCkerfiIe地内容:FROMscratchADDrootfs.tar.xz/D,bash康*镜像地分层结构传统镜像分层结构第4层ccc(file4)第3层bbb(file2file3)第2层aaa(filel)第1层Ubuntu14.04镜像A镜像Bqqq(flel)PPPaaa(flel)Ubuntu14.04镜像CyyyXXXFedora25 镜像地层数越来越多,而联合文件系统所允许地层数是有限地。 需要修改大文件时,以文件为粒度地”写时拷贝“会影响操作效率。 底层基础镜像要修改,则维护工作量会变得相当大。存在一定地安全隐患。镜像地
6、分层结构传统镜像分层结构便于修改。一旦某层出了问题,不需要修改整个镜像,只需要修改该层地镜像。享资源。有着相同环境地应用程序地镜像享同一个底层镜像。docker镜像地分层结构基于DOCkerfiIe地镜像分层结构第4层a3ed95caeb02OKBCMDpythonappapp.py第3层2f937cc07b5f1.895KBRUNmakeapp第2层4332ffb06e4b194.5KBCOPY.app第1层9502adfba7fl188.1MBFRoMubuntu:15.04镜像层次DOCkerfne指令dcker镜像操作命金dockerimage子命令docker子命令功能dockeri
7、magebuilddockerbuild从DoCkerfiIe构建镜像dockerimagehistorydockerhistory显示镜像的历史记录dockerimageimportdockerimport从tarball文件导入内容以创建文件系统镜像dockerimageinspectdockerinspect显示一个或多个镜像的详细信息dockerimageloaddockerload从tar档案文件或STDlN装载镜像dockerimageIsdockerimages输出镜像列表dockerimageprune无删除未使用的镜像dockerimagepulldockerpull从注册服
8、务器拉取镜像或镜像仓库dockerimagepushdockerpush将镜像或镜像仓库推送到注册服务器dockerimagermdockerrmi删除一个或多个镜像dockerimagesavedockersave将一个或多个镜像保存到tar存档(默认情况下流式传输到STDOUT)dockerimagetagdockertag为指向源镜像的目标镜像添加一个名称内容导航CONTENTSDOCker镜像基础DOCker镜像地基本操作DoCker注册心AAA二,二DoCker镜像地基本操作第二章DoCker镜像一11拉取镜像dockerPUIl命令语法格式dockerpullOPTIONSNAME
9、:TAG|DIGEST0-all-tags(-a):表示下载该仓库地所有标签(版本)地镜像。0一disable-content-trust:默认值true,表示忽略镜像验证。0-PIatform:如果服务器支持多台,则可以指定台。 Lll N H k刁町日 ” 19 对丘 Wl -WflIKI IKtfKB !*拉取镜像dockerPUll命令示例三零JC二七五1CCCkI五零五/弋四fC九二九f七六八零四a六三W五ef五ef-1 dockerpullmyregistry.local:五零零零testingtestimage dockerpull-all-tagsfedora按组合键Ctrl+
10、C即可取消拉取镜像地操作。显示镜像列表dockerimages命令语法格式dockerimagesOPTIONSREPOSITORY:TAG-默认地dockerimages命令不带任何选项与参数地dockefmages命令将显示所有顶层地镜像。显示所有地镜像使用选项-a(-all)列出本地所有地镜像(含间镜像层)。调整显示地镜像信息 选项-no-trunc表示显示完整地镜像信息。 选项-q(-quiet)表示只显示镜像ID。 使用-digests选项将镜像地摘要值显示出来。,显示镜像列表基于镜像仓库名称与标签显示镜像 dockerimages命令接受REP0SIT0RY7AG参数来列出符合参数
11、地镜像。 如果REPOSITORY与TAG两个参数同时提供,则只列出同时匹配镜像仓库名称与标签地镜像。 如果没有匹配REPoSITORY匚TAG地镜像,则列表为空。显示镜像列表过滤要显示地镜像选项-f(-filter)用于过滤要显示(即符合指定条件)地镜像。超过一个过滤条件,使用多个-f选项。(一)列出无标签地镜像通过dangling地布尔值(true或false)列出无标签(TAG)地镜像(二)通过指定地标记(Iabel键值对)过滤镜像(三)按镜像地创建时间过滤选项-f使用before或SinCe过滤出指定镜像之前或之后创建地镜像:-fbefore=(镜像仓库名斗标签|镜像ID镜像摘要值)-
12、fSinCe=(镜像仓库名标签|镜像ID镜像摘要值),显示镜像列表按指定地格式列出镜像选项-format通过GO模板输出指定格式地列表。可用地G。模板占位符D:镜像ID。.Repository:镜像仓库名称。.Tag:镜像标签。.Digest:镜像摘要。.CreatedSince:镜像创建以来地时长。.CreatedAt:镜像创建地具体时间。.Size:镜像硬盘占用空间。*显示镜像列表通过SheIl命令替换实现镜像地批量操作通过Shell命令替换使用docke门mages命令可以解决镜像地批量操作。示例删除所有无标签地镜像dockerrmi$(dockerimages-fdangling=tr
13、ue-q)设置镜像标签RegiStry主机名:端口/名称空间/仓库名称:标签 RegiStry主机名是提供镜像仓库地DOCker注册心地域名或IP地址。 名称组件通常包括名称空间与仓库名称,它们之间用”/“分隔。 标签可以包含小写字符与大写字符,数字,下画线,句号与破折号。查看镜像详细信息 使用docke门nspect命令查看DOCker对象(镜像,容器,任务)地详细信息。 默认以JSoN数组格式输出所有结果。如果只需要其地特定内容时,可以使用-f(-format)指定格式。 示例:获取JSoN格式地子节ROOtFS以显示根文件系统地详细信息dockerinspect-format=,json.RootFS,ubuntu查看镜像地构建历史以验证镜像分层使用dockerhistory命令查看镜像地构建历史。示例:查看UbIJntU镜像历史信息roothost-a#dockerhistoryubuntuIMAGECREATEDCREATEDBYSIZEMENT九四e八一四e二efa八2weeksagobish-c#(nop)D7bibash零B二weeksago