news 2026/9/16 12:42:01

2.2 Docker底层原理深度剖析:UnionFS、镜像层、容器层三层架构详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2.2 Docker底层原理深度剖析:UnionFS、镜像层、容器层三层架构详解

2.2 Docker底层原理深度剖析:UnionFS、镜像层、容器层三层架构详解

引言

Docker的镜像和容器基于Union File System(联合文件系统)实现。理解UnionFS的工作原理,特别是镜像层、容器层的三层架构,是掌握Docker的关键。本文将深入剖析Docker的底层存储机制。

一、Union File System概述

1.1 什么是UnionFS

UnionFS是一种文件系统,允许将多个目录(分支)叠加在一起,形成一个统一的文件系统视图。

1.2 UnionFS的特点

  • 叠加性:多个文件系统可以叠加
  • 写时复制:修改时创建新文件
  • 分层存储:支持只读层和可写层

二、Docker的三层架构

2.1 架构图

┌─────────────────────────────────────┐ │ 容器层 (Container Layer) │ ← 可写层 │ (可读写,生命周期短) │ ├─────────────────────────────────────┤ │ 镜像层 (Image Layers) │ ← 只读层 │ (只读,可复用) │ │ ┌──────────┐ ┌──────────┐ │ │ │ Layer 3 │ │ Layer 2 │ │ │ └──────────┘ └──────────┘ │ │ ┌──────────┐ │ │ │ Layer 1 │ │ │ └──────────┘ │ ├─────────────────────────────────────┤ │ 基础层 (Base Layer) │ │ (操作系统基础) │ └─────────────────────────────────────┘

2.2 各层说明

  1. 基础层:操作系统基础文件
  2. 镜像层:应用程序和依赖,只读
  3. 容器层:运行时的修改,可写

三、镜像层详解

3.1 镜像层的特点

  • 只读:镜像层是只读的
  • 共享:多个容器可以共享同一镜像层
  • 增量:每层只包含相对于上一层的变更

3.2 查看镜像层

# 查看镜像历史dockerhistorynginx:latest# 查看镜像详细信息dockerinspect nginx:latest# 查看镜像层dockerimage inspect nginx:latest --format='{ {.RootFS.Layers}}'

3.3 镜像层存储位置

# 查看存储驱动dockerinfo|grep"Storage Driver"# Overlay2存储位置(Linux)/var/lib/docker/overlay2/# 查看镜像层目录结构ls-la /var/lib/docker/overlay2/

四、容器层详解

4.1 容器层的特点

  • 可写:容器层是可读写的
  • 临时:容器删除时,容器层也会删除
  • 写时复制:修改文件时创建副本

4.2 容器层操作

# 在容器中创建文件dockerrun -it alpineshecho"test">/tmp/test.txt# 查看容器层变化dockerdiff<container_id># 提交容器层为新镜像dockercommit<container_id>myimage:latest

4.3 容器层存储

# 查看容器层dockerinspect<container_id>|grep-A10"GraphDriver"# Overlay2容器层位置/var/lib/docker/overlay2/<container_id>/

五、写时复制(Copy-on-Write)

5.1 CoW原理

当容器需要修改文件时:

  1. 检查文件是否在容器层
  2. 如果不在,从镜像层复制到容器层
  3. 在容器层进行修改

5.2 CoW示例

# 创建容器dockerrun -d --nametestalpinesleep3600# 在容器中修改文件dockerexectestsh-c"echo 'modified' > /etc/hostname"# 查看变化dockerdifftest# 输出:C /etc (Changed)# A /etc/hostname (Added)

5.3 CoW性能影响

  • 优点:节省存储空间,快速创建容器
  • 缺点:首次写入有性能开销

六、存储驱动对比

6.1 常用存储驱动

存储驱动特点适用场景
overlay2性能好,支持多层推荐使用
aufs老版本使用
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 12:34:41

笔记本散热工具:三步解决风扇噪音问题,让电脑安静如猫

笔记本散热工具&#xff1a;三步解决风扇噪音问题&#xff0c;让电脑安静如猫 【免费下载链接】nbfc NoteBook FanControl 项目地址: https://gitcode.com/gh_mirrors/nb/nbfc 还在为笔记本风扇突然狂转的噪音烦恼吗&#xff1f;这款神奇的笔记本散热工具能帮你解决风扇…

作者头像 李华
网站建设 2026/9/11 20:08:45

想自己训练OCR模型?这个镜像支持数据微调一气呵成

想自己训练OCR模型&#xff1f;这个镜像支持数据微调一气呵成 你是否遇到过这些情况&#xff1a; 现成的OCR工具在特定场景下识别率低&#xff0c;比如工业仪表盘、古籍扫描件、手写单据&#xff1b;想用自定义数据提升检测精度&#xff0c;但被繁杂的环境配置、数据格式转换…

作者头像 李华
网站建设 2026/9/10 9:35:03

歌词数据获取新方案:LyricsGenius如何重塑音乐信息提取流程

歌词数据获取新方案&#xff1a;LyricsGenius如何重塑音乐信息提取流程 【免费下载链接】LyricsGenius Download song lyrics and metadata from Genius.com &#x1f3b6;&#x1f3a4; 项目地址: https://gitcode.com/gh_mirrors/ly/LyricsGenius 在数字化音乐蓬勃发展…

作者头像 李华
网站建设 2026/9/16 9:17:25

从部署到测试,完整走通FSMN-VAD语音检测流程

从部署到测试&#xff0c;完整走通FSMN-VAD语音检测流程 语音端点检测&#xff08;VAD&#xff09;是语音处理流水线中看似低调却极为关键的一环。你是否遇到过这样的问题&#xff1a;一段10分钟的会议录音&#xff0c;真正说话的内容可能只有3分钟&#xff0c;其余全是环境噪…

作者头像 李华
网站建设 2026/9/3 4:32:22

1.13 Go HTTP服务器性能优化:连接池、超时控制、优雅关闭实战技巧

1.13 Go HTTP服务器性能优化:连接池、超时控制、优雅关闭实战技巧 引言 生产环境的HTTP服务器需要高性能和高可用性。本文将深入讲解连接池、超时控制、优雅关闭等性能优化技巧,帮助你构建高性能的HTTP服务器。 一、HTTP客户端连接池 1.1 默认HTTP客户端的问题 package …

作者头像 李华
网站建设 2026/9/10 20:51:53

开箱即用!基于UNet的图像抠图镜像快速入门指南

开箱即用&#xff01;基于UNet的图像抠图镜像快速入门指南 1. 为什么你今天就能用上专业级抠图工具 你有没有过这样的经历&#xff1a;为了给一张人像换背景&#xff0c;在Photoshop里花半小时调边缘、修毛发&#xff0c;结果还是有白边&#xff1b;或者要处理几十张电商产品…

作者头像 李华