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

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

作者:dfengwei 2017-07-12 16:45:10

云计算 大家肯定安装过ghost系统,镜像就像是ghost文件,容器就像是ghost系统。你可以拿别人的ghost文件安装系统(使用镜像运行容器),也可以把自己现有的系统制作成ghost文件(从容器构建镜像)。Dockerfile则像是一个生成ghost文件的脚本(镜像构建脚本),

 

这里用个不太恰当的比方来说明。

大家肯定安装过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变动,或者依赖的父镜像变动,都会触发镜像的自动构建,非常方便。

** 不管是官方还是我个人,都推荐使用第二种方式构建镜像。**

关于Dockerfile里面指令的详细说明,这里就不一一列出了,大家可以参考官方文档,或关注我之后的文章,当然网上也是一搜一大堆。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/306309.html<

(0)
管理的头像管理
上一篇2025-05-26 14:36
下一篇 2025-05-26 14:38

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注