首页/新闻资讯/正文详情

Docker 底层知识:从 Namespace 到 UnionFS

发布时间:2026/9/27 9:37:24 来源:云帆数科 栏目:资讯中心
Docker 底层知识:从 Namespace 到 UnionFS
很多人用 Docker 时觉得它很轻量但轻量背后其实是一套扎实的 Linux 内核机制。理解这些底层知识能帮你更好地排查容器问题、设计镜像和规划资源。文章目录一、容器不是虚拟机二、Namespace隔离看到什么三、Cgroups限制能用多少四、UnionFS镜像分层的秘密五、网络靠虚拟设备串联六、一次 docker run 发生了什么小结一、容器不是虚拟机虚拟机靠 Hypervisor 模拟硬件每个 VM 有独立内核而容器直接共享宿主机内核只是通过内核提供的隔离能力伪装成独立系统。所以容器启动快、开销小但也意味着容器内的内核版本必须和宿主机兼容。Docker 的底层依赖主要有四块Namespace、Cgroups、UnionFS 和网络虚拟化。二、Namespace隔离看到什么Namespace 是 Linux 内核提供的资源隔离机制。Docker 启动容器时会为进程创建一组新的 Namespace让进程只能看到自己 Namespace 内的资源。常见的几种PID Namespace容器内进程 PID 从 1 开始看不到宿主机其他进程Mount Namespace容器有独立的挂载点视图根目录由镜像提供Network Namespace独立的网卡、IP、端口、路由表UTS Namespace独立的主机名和域名IPC Namespace独立的信号量、消息队列User Namespace用户和用户组映射可实现 root 权限隔离举个例子容器里执行ps aux只看到几个进程就是 PID Namespace 在起作用。三、Cgroups限制能用多少Namespace 解决看得见看不见CgroupsControl Groups解决能用多少。它负责对 CPU、内存、磁盘 I/O、网络带宽等资源做限制和统计。Docker 运行时的--cpus、--memory、--blkio-weight等参数最终都是写到 Cgroups 的对应子系统里。比如dockerrun-m512m--cpus1.5nginx本质是在/sys/fs/cgroup/下为这个容器创建一组限制文件。如果容器被 OOM Kill往往就是 memory cgroup 触发了限制。四、UnionFS镜像分层的秘密Docker 镜像最迷人的地方是分层复用靠的是联合文件系统UnionFS常见实现有 OverlayFS、AUFS、devicemapper 等。核心思想镜像由多个只读层叠加而成每层是一次构建的变更容器启动时在最上面加一个可写层读文件时从上层往下找写文件时用Copy-on-Write把文件从只读层复制到可写层再修改这带来几个直接结果镜像层可共享多个容器用同一镜像只读层在磁盘上只有一份容器删除后数据丢失可写层随容器销毁所以要用 Volume 持久化构建要合并指令Dockerfile 里多条RUN会生成多层层数越多镜像越大所以常把命令用合并五、网络靠虚拟设备串联Docker 默认的 bridge 网络底层是 Linux 的veth pair和网桥每个容器有一对 veth 设备一端在容器 Network Namespace 内如 eth0另一端挂在宿主机的docker0网桥上容器间通信通过网桥二层转发访问外网靠 iptables 的 NAT 规则做源地址转换端口映射-p 8080:80本质是一条 DNAT 规则六、一次docker run发生了什么把上面串起来Docker Daemon 收到请求准备镜像层创建 NamespacePID、Mount、Network 等创建 Cgroups 并写入资源限制用 OverlayFS 挂载镜像层 可写层作为容器根文件系统创建 veth pair接入网桥配置 IP 和 iptables启动容器内 1 号进程执行 entrypoint小结机制作用Namespace隔离资源视图Cgroups限制资源用量UnionFS镜像分层与写时复制veth 网桥容器网络通信Docker 本身并不神秘它更像是对 Linux 内核能力的封装与编排。理解了这四块再看容器的性能问题、网络不通、磁盘占用思路会清晰很多。

相关推荐

wordpress汉化版博客避坑指南
wordpress汉化版博客避坑指南

3个WordPress汉化博客避坑指南新手必看 找建站公司报价三万五,结果交个半成品?自己折腾WordPress汉化版博客,又怕服务器配错、备案被拒、代码冲突导致网站瘫痪?这篇避坑指南,就是给咱们这种在浙江转行做网站、手里没几把刷子又怕被坑… · 2026/9/27 9:37:18

祁门县统计年鉴(2024-2025)
祁门县统计年鉴(2024-2025)

祁门县统计年鉴(2024-2025)数据来源:祁门县统计局数据年份:2024-2025数据格式:pdf目录:祁门县2024年国民经济和社会发展统计公报、行政区划和自然资源1-1 行政区划(2024年末1-2 历年行政区划变动情况1-3 自… · 2026/9/27 9:37:00

Apple Pencil二代连接不上iPad的解决办法
Apple Pencil二代连接不上iPad的解决办法

我的问题状况 Apple Pencil 突然只连接,但是电池显示为0(实际上是满电的),无法触控;随后蓝牙中忽略设备后,无法再被搜索到 尝试了笔头拧开,接触金属,擦磁吸接触仍然不好用 解决方案 … · 2026/9/27 9:37:00

KubeVela vNext 多租户设计解析:KEP-2.14 中的 TenantDefinition 与 Tenant 平台原语
KubeVela vNext 多租户设计解析:KEP-2.14 中的 TenantDefinition 与 Tenant 平台原语

云原生DevOps运维微服务 【免费下载链接】kubevela The Modern Application Platform. 项目地址: https://gitcode.com/gh_mirrors/ku/kubevela 点击查看 免费下载 KEP-2.14 是 KubeVela vNext Roadmap(design/vela-core/keps/README.md)中的… · 2026/9/27 10:23:49

嵌入式驱动从“能跑”到“不崩”:量产级工程化实战指南
嵌入式驱动从“能跑”到“不崩”:量产级工程化实战指南

我见过太多这样的场景:嵌入式驱动开发出来的demo驱动在试验板上跑得稳稳的,功能正常、数据正确,开发人员自信满满地交出去,结果样机一到客户手里,要么几天崩一次,要么高低温环境一跑就死机,要么… · 2026/9/27 10:23:49

预处理、编译、汇编、链接
预处理、编译、汇编、链接

1.翻译环境和运行环境在 ANSI C 的任何⼀种实现中,存在两个不同的环境。第一种是翻译环境,在这个环境中,源代码被转换为可执行的机器指令(二进制指令);第二种是执行环境,它用于实际执行代码。1.… · 2026/9/27 10:23:49

KubeVela KEP-2.4 解读:Dispatcher 可插拔交付机制与跨集群分发设计
KubeVela KEP-2.4 解读:Dispatcher 可插拔交付机制与跨集群分发设计

云原生DevOps运维微服务 【免费下载链接】kubevela The Modern Application Platform. 项目地址: https://gitcode.com/gh_mirrors/ku/kubevela 点击查看 免费下载 本文基于 design/vela-core/keps/2.4-dispatchers/README.md 整理。该 KEP 当前标注为 Drafting&am… · 2026/9/27 10:23:43

Thonny在树莓派上的窗口机制与性能调优指南
Thonny在树莓派上的窗口机制与性能调优指南

1. 为什么树莓派用户总在Thonny里卡住——不是IDE太慢,是窗口逻辑没吃透你刚把树莓派4B插上电,烧好Raspberry Pi OS,双击桌面那个蓝色图标打开Thonny,结果发现:代码能写,但“运行”按钮点了没反应&#xff… · 2026/9/27 10:23:43

工业控制器分级存储方案:EEPROM、NOR Flash与SD卡分工实践
工业控制器分级存储方案:EEPROM、NOR Flash与SD卡分工实践

做工业控制器这些年,最让我头疼的不是算法,不是通信,而是“数据到底存在哪儿”。设备要保存的参数、固件、FPGA 配置文件、运行日志、历史曲线,数据性质完全不同——有的几天才改一次,有的每秒都在写,有的丢… · 2026/9/27 10:23:43

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码