赞
踩
本讲是从Docker系列讲解课程,单独抽离出来的一个小节,重点介绍:镜像分层的意义,一起来探讨一下吧!
就是把业务代码+可运行环境、进行整体的打包得到的一个只读文件。每迭代一个版本,打一次包。需要哪个版本,可以直接拉取运行。
再具体点:
镜像是一种轻量级、可执行的独立软件包、用来打包软件运行环境和基于运行环境开发的软件,它包含了某个软件所需的所有内容、包括代码、运行时、库、环境变量和配置文件。
所有的应用、直接打包docker镜像、就可以直接运行使用。
举例说明:
通过docker pull 命令,下载下的tomcat 或 nginx镜像,是不是可以通过docker run 启动后,直接通过浏览器访问,与之配套的资源已经自动构建好。
一起回顾一个码头的场景:
古代的码头是不是要手挑肩扛,把货物一件件往小船上运?弊端很明显:工人可以多少私吞一点,效率也比较低。
现在呢?都是一个大大的集装箱,一个大大的货轮。好处也很明显:效率高、集装箱货物之间彼此相互不影响。
反思:码头上,每个集装箱,可以把他们理解为单独的一个镜像,Docker是什么?它就是那个大大的货轮。
上面的货物,有PHP的、Nginx的、Tomcat,多种镜像、(可以在基准镜像上迭代)多个版本(每个版本只需做增量操作),每个镜像都可以拉出来独立运行,相互都不影响,是不是很Nice!
docker官方仓库里面有大量的镜像,可以从中直接pull命令拉取。另外这些镜像都是原厂维护,可以得到及时的更新和修护。
我还可以通过编写Dockerfile,用FROM指定基准镜像后,自定义一些服务,然后重新bulid镜像,最后把它打包成一个自定义的新镜像。
该基础镜像,在Dockerfile中的体现就是FROM关键字后面的内容。
当进行修改或增加新的内容时,就会在当前镜像层之上,创建新的镜像层。无论这个镜像有多少层,对内每层的中间镜像都是各自独立的,对外他们又是一个统一的整体。
对内是一层一层的(每家每户),对外统一视图(都是中国公民),都是只读的:
注:图片中的大背景框,就是基准镜像,类似于大轮船上的其中一个集装箱(文件是集装箱中的货物)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。