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
由上图可知,上图中红色部分为多出来的一层。