文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Docker和容器镜像的区别是什么

2023-06-04 17:01

关注

本篇文章为大家展示了Docker和容器镜像的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

很多刚刚接触容器技术的朋友,不容易弄清楚容器,容器镜像和Docker这几个词的区别和联系。

Docker和容器镜像的区别是什么

我们首先来看容器和容器镜像。举个例子,执行命令行docker search nginx,搜索结果的一条条记录就是一个个容器镜像。

Docker和容器镜像的区别是什么

所谓镜像,就是一个静态概念,一个镜像由若干只读层(read-only layer)构成。

Docker和容器镜像的区别是什么

上图左边是Docker镜像的内部实现细节,我们能看到多个只读层叠加在一起,层与层之间通过指针关联,这些层能够在运行Docker的宿主机的文件系统上访问到。

Linux的统一文件系统(union file system)技术将这些叠加的只读层合并成一个文件系统,该系统为这些只读层提供了一个统一的视角,从而为Docker的用户隐藏了多层的存在。

从Docker用户的视角出发,一个Docker镜像只存在一个文件系统,即上图右边所示。

这些文件系统的设计是Docker实现细节,一般情况下我们不用去深究。但如果您足够好奇,使用命令sudo tree浏览目录 /var/lib/docker即可:

Docker和容器镜像的区别是什么

比如我用命令docker images浏览下载到本地的docker镜像:

Docker和容器镜像的区别是什么

其中一个叫jerry-nginx的镜像,是一个web应用,它的所有内容能在/var/lib/docker目录下的这个目录查到:

Docker和容器镜像的区别是什么

讲完了容器镜像,我们再来看容器。

Docker和容器镜像的区别是什么

容器和容器镜像一样,也是若干层的叠加,唯一区别是所有只读层的最上面一层,是一层可读可写层,如上图绿色图例所示。

初学者可以记住这个简单的公式:容器 = 容器镜像 + 可读可写层

Docker和容器镜像的区别是什么

我们如果用命令docker ps --all查看本机所有容器列表,会发现有的容器处于运行状态,有的处于退出状态。

因此,一个处于运行状态的容器(running container)包含一个可读写的文件系统加上隔离的进程空间。

容器里的进程可以对这个可读写文件系统内的文件进行修改、删除、创建等操作。

镜像里每一层其实都能在docker文件夹的containers子目录下找到:

Docker和容器镜像的区别是什么

上图每一个红色文件夹代表镜像里的一层,蓝色文件包含了该层运行时的日志文件,或者网络相关配置等。

做个实验:

Docker和容器镜像的区别是什么

ubuntu这个容器执行结束后,使用find / -name i042416.txt文件,这说明docker运行时能对宿主机的文件系统进行写操作。

Docker和容器镜像的区别是什么

下面分析几个常用的易混淆的命令。

docker create <image-id>

先看它的帮助文档:

Docker和容器镜像的区别是什么

试着执行以下:

Docker和容器镜像的区别是什么

产生一个输出id:

7ee10851c3f1e53bbd35e5f196f34de560afa1a20d9bf1ced587630dbcda877b

create创建的容器,状态变为created:

Docker和容器镜像的区别是什么

docker create命令给通过命令行传入的容器镜像创建了一个新的可读可写层,从而生成了一个新的容器实例:

Docker和容器镜像的区别是什么

然后再执行docker start,输入docker create创建的容器实例ID,就可以启动这个容器实例了。

而docker run其实就是docker create和docker start这两个命令合二为一的版本。

上述内容就是Docker和容器镜像的区别是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯