当前位置:   article > 正文

Docker学习:理论基础之Docker镜像分层 | 容器和镜像的关系 | 写时复制与用时分配_docker 查看镜像分成

docker 查看镜像分成

前言

本讲是从Docker系列讲解课程,单独抽离出来的一个小节,重点介绍:镜像分层的意义,一起来探讨一下吧!

概述

1.站在镜像分层的角度考虑,什么是镜像?

就是把业务代码+可运行环境、进行整体的打包得到的一个只读文件。每迭代一个版本,打一次包。需要哪个版本,可以直接拉取运行。

再具体点:

镜像是一种轻量级、可执行的独立软件包、用来打包软件运行环境和基于运行环境开发的软件,它包含了某个软件所需的所有内容、包括代码、运行时、库、环境变量和配置文件。
所有的应用、直接打包docker镜像、就可以直接运行使用。

举例说明:

通过docker pull 命令,下载下的tomcat 或 nginx镜像,是不是可以通过docker run 启动后,直接通过浏览器访问,与之配套的资源已经自动构建好。 

2.为什么要镜像分层?好处是什么?

一起回顾一个码头的场景:

古代的码头是不是要手挑肩扛,把货物一件件往小船上运?弊端很明显:工人可以多少私吞一点,效率也比较低

现在呢?都是一个大大的集装箱,一个大大的货轮。好处也很明显:效率高、集装箱货物之间彼此相互不影响

反思:码头上,每个集装箱,可以把他们理解为单独的一个镜像,Docker是什么?它就是那个大大的货轮。

上面的货物,有PHP的、Nginx的、Tomcat,多种镜像、(可以在基准镜像上迭代)多个版本每个版本只需做增量操作,每个镜像都可以拉出来独立运行,相互都不影响,是不是很Nice! 

3.如何创建docker镜像

docker官方仓库里面有大量的镜像,可以从中直接pull命令拉取。另外这些镜像都是原厂维护,可以得到及时的更新和修护。

我还可以通过编写Dockerfile,用FROM指定基准镜像后,自定义一些服务,然后重新bulid镜像,最后把它打包成一个自定义的新镜像。

一、现实中的镜像

1.所有镜像都起始于一个基础镜像层

该基础镜像,在Dockerfile中的体现就是FROM关键字后面的内容。

当进行修改或增加新的内容时,就会在当前镜像层之上,创建新的镜像层。无论这个镜像有多少层,对内每层的中间镜像都是各自独立的,对外他们又是一个统一的整体。

 对内是一层一层的(每家每户),对外统一视图(都是中国公民),都是只读的:

注:图片中的大背景框,就是基准镜像,类似于大轮船上的其中一个集装箱(文件是集装箱中的货物)。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/73873
推荐阅读
相关标签
  

闽ICP备14008679号