dockerfile-镜像分层机制

镜像分层存储机制:

docker在底层想存储一个镜像是分层存储的,即镜像由运行构建镜像的dockerfile文件中的指令制作,并且运行指令时会在磁盘产生内容,其他镜像在构建时遇到相同指令产生的内容不再占用磁盘空间而是直接使用已有指令产生的磁盘内容。如果是相同镜像的多个容器实例时,这多个容器实例都只用一个镜像在磁盘产生的内容,只有对容器修改的内容不同即单独成为各自的容器层,即各个独立的容器在磁盘存储不是完全独立的,相同的已经在磁盘存在的内容不会再去存储一份而是各个容器共用,避免占用空间浪费,各个容器或镜像不同的部分再单独存储。。。。(理解的不太到位)

例子:

官方镜像nginx和自己制作的镜像nginx比较:

1.docker image history 镜像名称查看镜像的历史即构建镜像的dockerfile文件比较镜像不同:

2.docker image inspect 镜像名称查看镜像的详情比较镜像不同:

3.docker ps -s展示启动容器的总文件大小比较容器:

容器与镜像存储机制:

镜像不删,镜像的基础数据就还在磁盘里边,容器一删,对镜像的修改内容即容器层就会被删除

启动容器把数据挂载到主机原因:

删除容器就是删除了容器层,对镜像的修改操作数据从磁盘被删除,则容器数据丢失,所以将修改数据挂载到主机,在删除了容器即删除容器层之后,容器层的修改数据已被复制一份挂载到主机在磁盘不会丢失

docker常用命令:

docker image history 镜像名称:查询镜像的历史,即查询该镜像的dockerfile文件指令以及指令运行产生的内容

docker image inspect 镜像名称:查询镜像详情

相关推荐
Harvy_没救了13 分钟前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx
春风有信23 分钟前
【2026.05.01】Windows10安装Docker Desktop 4.71.0.0步骤及问题解决
运维·docker·容器
嵌入式×边缘AI:打怪升级日志34 分钟前
100ASK-T113 Pro 开发板 Bootloader 完全开发指南
linux·ubuntu·bootloader
lzhdim37 分钟前
SQL 入门 12:SQL 视图:创建、修改与可更新视图
java·大数据·服务器·数据库·sql
2401_873479401 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
守城小轩1 小时前
基于Chrome140的Yahoo自动化(关键词浏览)——需求分析&环境搭建(一)
运维·自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发
charlie1145141912 小时前
Linux 字符设备驱动:cdev、设备号与设备模型
linux·开发语言·驱动开发·c
handler012 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
zhouwy1132 小时前
Linux进程与线程编程详解
linux·c++
我星期八休息2 小时前
IT疑难杂症诊疗室:AI时代工程师Superpowers进化论
linux·开发语言·数据结构·人工智能·python·散列表