前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker | Docker技术基础梳理(四) - 深入理解镜像与容器

Docker | Docker技术基础梳理(四) - 深入理解镜像与容器

作者头像
咸鱼学Python
发布2019-10-09 14:42:41
6840
发布2019-10-09 14:42:41
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python
容器与镜像的关系

在实际操作中,我们配置好需要的容器之后可以将它转化为镜像提交到仓库,以便之后使用。

先看一下容器与镜像的转换关系图:

容器提交(docker commit)

根据容器生成一个新的镜像

命令格式:docker commit [参数] 容器[版本]

常用参数:

代码语言:javascript
复制
-a 添加作者
-c 为创建的镜像加入Dockerfile命令
-m 类似git commit -m
-p 提交时暂停容器
容器导出(docker export)

将当前容器导出为TAR文件

命令格式:docker export [参数] 容器

常用参数:-o 指定写入的文件

容器导入(docker import)

将之前导出的容器文件导入并创建为一个镜像

命令格式:docker import [参数] 文件|链接|[版本信息]

常用参数:

代码语言:javascript
复制
-m 导入时添加提交信息
-c 为创建的镜像加入Dockerfile命令
docker import 与 docker commit 的区别

当你使用docker import 时,导入的镜像是一个全新镜像,是无法使用docker history查看到镜像的历史信息,使用docker commit 导入时,生成的镜像可以使用docker history查看到镜像的历史信息的。

深入理解Docker容器和镜像

在docker文章的第一篇,我和大家简单的比喻了镜像和容器的关系,有位读者就这个问题和我讨论了一番,这里就这个问题做一个简单的描述,深入理解下镜像和容器。

在镜像层面上:

当我们查看镜像详细信息时,可以看到以下信息:

这里的Layers指的就是一个个只读的文件系统,镜像就是由这样一个个文件系统组成的,我们把镜像运行起来就会成为一个个容器,当我们在容器中做了修改并commit为镜像后,就会不断在原有的Layers层上新增一个Layer层,就像下面看到的这样。

镜像的Layer

所以当我们commit后,我们看到的镜像就是最上层的Layer。

镜像的视角

在容器层面上:

当我们使用docker create [image id]用指定镜像创建容器时,可以理解为在镜像的最上层创建了一个可读可写的Layer,当我们修改完,使用commit提交后,这个容器的可读可写的Layer层就会转化为镜像的只读的Layer层。

而当我们使用docker inspect查看容器的时候只能查看到最上层容器的信息而无法查看到像镜像那样的Layers,这是因为在容器的视角中Layer层是这样的:

当容器中有进程运行时:

容器内部是这样的:

总结

关于深入理解镜像和容器的部分,如若有理解错误的地方希望大家指正,这一部分有些抽象大家可以结合实际操作加深理解,也欢迎各路大佬一起交流探讨。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 容器与镜像的关系
    • 容器提交(docker commit)
      • 容器导出(docker export)
        • 容器导入(docker import)
          • docker import 与 docker commit 的区别
          • 深入理解Docker容器和镜像
          • 总结
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档