docker镜像文件分层管理

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

docker层级基础
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
在这里插入图片描述
由上图可知,上图中红色部分为多出来的一层。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值