关闭

用户登录

欢迎来到商业参考网,请登录人员查询

地区· 导航
当前所在: 主页 > 科技资讯 >

关于Docker里面的几个主要概念

  • 时间:2017-08-14 09:41
  • 来源网络
  • 浏览量:1279
  • 字号:


  这里用个不太恰当的比方来说明。大家肯定安装过ghost系统,镜像就像是ghost文件,容器就像是ghost系统。你可以拿别人的ghost文件安装系统(使用镜像运行容器),也可以把自己现有的系统制作成ghost文件(从容器构建镜像)。Dockerfile则像是一个生成ghost文件的脚本(镜像构建脚本),这个脚本会指定去哪里下载哪个版本的window系统,再去哪里下载哪些软件并安装,再修改哪些配置文件,等等。本文主要讲的是,如何从容器构建镜像(把现有系统制作成ghost文件),和如何使用Dockerfile构建镜像(使用脚本生成ghost文件)。  两种方式构建镜像的主要步骤:1.从容器构建镜像(以下简称容器镜像)创建一个容器,比如使用 tomcat:latest 镜像创建一个tomcat-test容器修改tomcat-test容器的文件系统,比如修改tomcat的server.xml文件中的默认端口使用commit命令提交镜像2.使用Dockerfile构建镜像(以下简称Dockerfile镜像)编写Dockerfile文件使用build命令构建镜像两种构建方式的区别:1.容器镜像的构建者可以任意修改容器的文件系统后进行发布,这种修改对于镜像使用者来说是不透明的,镜像构建者一般也不会将对容器文件系统的每一步修改,记录进文档中,供镜像使用者参考。2.容器镜像不能(更准确地说是不建议)通过修改,生成新的容器镜像。从镜像运行容器,实际上是在镜像顶部上加了一层可写层,所有对容器文件系统的修改,都在这一层中进行,不影响已经存在的层。比如在容器中删除一个1G的文件,从用户的角度看,容器中该文件已经没有了,但从文件系统的角度看,文件其实还在,只不过在顶层中标记该文件已被删除,当然这个标记为已删除的文件还会占用镜像空间。从容器构建镜像,实际上是把容器的顶层固化到镜像中。也就是说, 对容器镜像进行修改后,生成新的容器镜像,会多一层,而且镜像的体积只会增大,不会减小。长此以往,镜像将变得越来越臃肿。Docker提供的 export 和 import 命令可以一定程度上处理该问题,但也并不是没有缺点。3.容器镜像依赖的父镜像变化时,容器镜像必须进行重新构建。如果没有编写自动化构建脚本,而是手工构建的,那么又要重新修改容器的文件系统,再进行构建,这些重复劳动其实是没有价值的。4.Dockerfile镜像是完全透明的,所有用于构建镜像的指令都可以通过Dockerfile看到。甚至你还可以递归找到本镜像的任何父镜像的构建指令。也就是说,你可以完全了解一个镜像是如何从零开始,通过一条条指令构建出来的。5.Dockerfile镜像需要修改时,可以通过修改Dockerfile中的指令,再重新构建生成,没有任何问题。6.Dockerfile可以在GitHub等源码管理网站上进行托管,DockerHub自动关联源码进行构建。当你的Dockerfile变动,或者依赖的父镜像变动,都会触发镜像的自动构建,非常方便。

本站部分信息由相应民事主体自行提供,该信息内容的真实性、准确性和合法性应由该民事主体负责。商业参考网 对此不承担任何保证责任。

北京国信涉农资讯中心主办——政府网络举报投诉平台——政务资讯互动应用平台 安全联盟站长平台

商业参考网 版权所有 Copyright © 2013-2019 syck.org.cn Inc All Rights Reserved

联系电话:010-56019669 010-57028685 15301055604 监督电话:15010596982 违法和不良信息举报电话:010-56019669

联系邮箱:shangyezix@163.com 地址:北京市西城区月坛北街中直国家机关院25号院2号楼

政务资讯互动应用平台
北京国信涉农资讯中心