- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Docker
容器技术与应用
湖北 轻工职业技术学院;Docker镜像管理和定制;Docker镜像管理和定制;项目二:Docker镜像管理和定制;查看和管理Docker镜像;知识目标;能力目标;素质目标;小王编写完Docker镜像基础操作手册后,发现镜像基础操作手册中所用的镜像均为DockerHub提供的镜像,但这些通用镜像在实际部署中可能与具体项目需求存在不匹配的情况。因此,小王决定在操作手册中添加关于Docker镜像定制的功能,并通过实例进行说明。;通过commit命令创建镜像
构建Docker镜像有以下两种方法。
(1)使用dockercommit命令手动构建。
(2)使用dockerbuild命令和Dockerfile文件进行构建
原则上不能无中生有地创建一个镜像,需要一个基础镜像。
严格来说,用户并不是真正创建一个新的镜像,无论是启动一个容器还是创建一个镜像,一般都是在基础镜像基础之上的,比如基础redhat镜像、ubuntun镜像等。;通过commit命令创建镜像
dockercommit命令和dockerbuild命令的区别:
dockercommit是将容器提交为一个镜像,只提交容器镜像发生变更的部分,即修改后的容器镜像与当前仓库对应镜像之间的差异部分,这使得更新非常轻量级。
而dockerbuild是在一个基础镜像上重新构建一个新的镜像。;通过commit命令创建镜像
DockerDaemon接收到对应的HTTP请求后,需要执行的步骤如下。
(1)根据用户输入的pause参数的设置,来判定是否暂停该Docker容器的运行。(选项-p:在提交时,将容器暂停)
(2)将容器的可读写层导出打包,该读写层代表了当前运行容器的文件系统与当初启动容器的镜像之间的差异。
(3)在存储层中注册可读写层差异包。
(4)更新镜像历史信息和rootfs,并据此在镜像存储中创建一个新镜像,记录其元数据。
(5)如果指定了repository信息,则给上述镜像添加标签信息;举例:以ubuntu安装vim为例,说明dockercommit创建定制docker镜像的过程。
;举例:以ubuntu更新apt-get为例,说明dockercommit更新docker镜像的过程。
更新镜像之前,我们需要使用镜像来创建一个容器。
;dockercommit命令的格式
dockercommit[选项]容器ID或容器名[仓库名[:标签]]
dockercommit命令的常用选项如下。
(1)-a:提交镜像的作者。
(2)-c:使用Dockerfile指令来创建镜像。
(3)-m:提交时的说明文字。
(4)-p:在提交时,将容器暂停。;任务2.3创建定制的Docker镜像;dockercommit的缺点
虽然dockercommit命令可以比较直观的构建镜像,但在实际环境中并不建议使用dockercommit命令构建镜像,因为存在以下缺点:
1、在构建镜像中,由于需要安装相关的软件,可能会造成大量不必要的软件也被安装,如果清理软件不小心,也会导致镜像比较大。
2、利用dockercommit在构建镜像的过程中,由于dockercommit对镜像的操作属于黑箱操作,主要指除了制定镜像的用户知道执行过什么命令,怎么生成镜像的,而其他用户无从得知,将会给后期对镜像维护工作带来很大的困难。;利用Dockerfile构建镜像
我们使用命令?dockerbuild?,从零开始来创建一个新的镜像。为此,我们需要创建一个?Dockerfile?文件,其中包含一组指令来告诉Docker如何构建我们的镜像。
Dockerfile文件是一个文本文件,也是一个Docker可以解读的脚本文件,在这个脚本文件中记录着用户“创建”镜像过程中需要执行的所有命令。
当docker读取并执行Dockerfile文件中所定义的指令时,这些指令将产生一些临时文件层,并会用一个名称来标记这些临时文件层。
有些Dockerfile中的指令并不会创建新的镜像层。比如ENV、EXPOSE、CMD以及ENTRY-POINT。不过,这些命令会在镜像中添加元数据。
;利用Dockerfile构建镜像
Dockerfile从FROM命令开始,紧接着是各种方法、命令和参数。其产出为一个新的可以用于创建容器的镜像。
Dockerfile整体就两类语句组成:
#Comment注释信息
Instructionarguments指令参数,一行一个指令。;说明:
Dockerfile文件名首字母必须大写。
Dockerfile指令不区分大小写,但是为方便和参数做区分,通常指令使用大写字母。
Dockerfile中指
文档评论(0)