Notice: Constant WP_DEBUG already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 12

Notice: Constant WP_DEBUG_LOG already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 13

Notice: Constant WP_DEBUG_DISPLAY already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 14
Docker images分层介绍【zoues.com】 – zoues

LOADING

Follow me

Docker images分层介绍【zoues.com】
六月 22, 2017|DockerPaaS

Docker images分层介绍【zoues.com】

Docker images分层介绍【zoues.com】

为了最大化重用 Image,加快运行速度,减少内存和磁盘的占用,Docker container 运行时所构造的运行环境,实际上是由具有依赖关系的多个 Layer 组成的。如图 1 所示,每一串数字 ID 就代表了一个 Docker Image Layer。当我们在 pull 一个 Docker Image 的时候我们会发现所有依赖的 Layer 文件将会被 download。

先来看个分层的例子,先pull一个Ubuntu镜像,然后通过下面的Dockerfile build一个镜像,然后对比两个镜像的layers,发现上面的五个layers和Ubuntu的是一样的:

docker inspect ubuntu

Docker images分层介绍

docker build a image

Docker images分层介绍

docker inspect new_image

Docker images分层介绍

痛点:

当环境进行更新升级的时候,如果所有的节点均来自一个基础的 OS Image,重复的 layer 层将会被重复更新。也就意味着,这部分重复的内容会被反复的下载。如果一个 Docker Image 达到了 1G 以上的规模,而每个 Docker Host 节点的更新都需要重新下载新的 Image. 这样环境更新所花费的时间将会是成倍的增加。

基于一个应用的Docker镜像规划:

Docker images分层介绍

衍变一:

Docker images分层介绍

衍变二:

Docker images分层介绍

基于分层机制的Docker Image 的实践

如下图 所示, 按照之前介绍的安装 JDKLogstashLiberty Docker Image 大小在 1.8 G 左右。以此为基础创建的的 App Image 的大小在 1.9G 左右。

Docker Image 分层存储实验 1

Docker images分层介绍

在一个已经download Liberty Docker Image 的环境下下载 App Image。如下图所示,可以看到已经存在的 layer 已经是 complete 状态。唯一 download 的部分只有新增加的 EAR 所产生的新的 layer。所需时间仅仅为 1 33 秒。

Docker Image 分层存储实验 2

Docker images分层介绍

如果直接在一个不存在Liberty Docker Image server 上去 download App Docker Image, 如下图所示,我们可以看到所需要的时间将超过 7 分钟。

Docker Image 分层存储实验 3

Docker images分层介绍

通过下图可以发现其他 layer download 时间要超过 4 分钟,如果反复对这些重复的 Docker Imagelayer 进行下载更新,将会严重影响环境更新的效率。随着不同Image 之间在 Docker Image Layer 上的差异越大,所花费的下载 Docker Image 的代价也将越大。

Docker Image 分层存储实验 4

Docker images分层介绍

结论:

通过上面的来看,在Docker的使用过程中,需要进行Image的规划,然后尽可能的把基础的、共性的东西放到底层,尽可能的减少Docker部署过程整个Image的下载。

Docker images分层介绍

no comments
Share