docker层级基础
docker的镜像文件是分层管理的,如下图所示。

上图中:
1.最底层的bootfs为加载层,负责进行内存加载。
2.第二层为rootfs层,为系统环境,不同系统的镜像该层内容不一致。如centos和ubuntu的nginx镜像中,该层就不一致。
3.往上的层级就是一些应用的依赖层
以此越往下就是越基础的依赖层,越往上就是越偏向具体应用的层级。
当docker pull仓库中的镜像时,对首先检查需要pull下来的镜像文件层级,并与本机的镜像文件层级做对比,如果本地有已经含有相同的层级则不再下载,而使用该本地层级。
采用镜像文件采用层级的方式有一个好处就是不用重复下载相同的文件。
docker镜像文件层级测试
当下载一个镜像A,将A在本机进行运行成容器A并修改之后,采用docker commit对容器A进行提交成镜像B;此时镜像B的层级文件是在镜像A的基础上进行增加的,就是说在镜像A的层级上再加一层。

实机操作:
1.下载nginx最新版本
docker pull nginx
2.查看nginx镜像中的各个层级
docker image inspect nginx:latest

3.运行该镜像
docker run -p 8080:80 ngnix
4.进入该容器并进行修改
(1)进入容器中:
docker exec -it 容器ID /bin/bash
(2)进入到容器下的目录:
cd /usr/share/nginx/html
(3)修改里面的index.html文件
echo “hello nginx” > index.html
5.将容器提交为进行的镜像
docker commit -a=“author” -m=“charge html” 容器id nginx01:1.0
6.查看新镜像的文件层级
docker image inspect nginx01:1.0

由上图可知,上图中红色部分为多出来的一层。

本文介绍了Docker镜像的分层结构,包括bootfs和rootfs层,以及如何利用分层机制实现高效下载。通过实例展示了从拉取镜像到运行容器,再到修改容器并创建新镜像的过程。Docker通过比较本地镜像层与仓库镜像层,避免重复下载相同内容,提高效率。最后,分析了提交新镜像后层级的变化。
526

被折叠的 条评论
为什么被折叠?



