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 镜像名称:查询镜像详情

相关推荐
用户8055336980321 小时前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户0340952979121 小时前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF1 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者3 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo3 天前
Linux系统中网线与USB网络共享冲突
linux
荣--3 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森3 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜4 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
Sokach10154 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
SelectDB5 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维