新闻详情

新闻详情

首页 / 资讯中心 / 详情

Docker 底层知识:从 Namespace 到 UnionFS

发布时间:2026/9/27 9:37:30来源:尧图网络
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 内核能力的封装与编排。理解了这四块再看容器的性能问题、网络不通、磁盘占用思路会清晰很多。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ESP32-CAM图像传输实战:硬件接线、源码与踩坑全解析 2026/9/27 10:32:47

ESP32-CAM图像传输实战:硬件接线、源码与踩坑全解析

1. 项目概述:为什么ESP32-CAM图像传输值得你花三小时认真读完我第一次把ESP32-CAM连上电脑,看到串口监视器里跳出“Camera init failed”时,手里的杜邦线差点被捏断。那会儿网上搜“ESP32-CAM 图像传输”,前五页全是复制粘贴的Ard…

阅读更多 →
深圳中小企业网站建设避坑指南:5个步骤搞定不拖沓 2026/9/27 10:32:40

深圳中小企业网站建设避坑指南:5个步骤搞定不拖沓

深圳中小企业网站建设避坑指南:5个步骤搞定不拖沓 改个按钮位置,建站公司让你等一周?后台改个文案,还要走一遍“需求变更流程”?在深圳做老板的,最怕的就是这种“大爷式”服务。你急着要上线引流,对方却按部就班,效率低到让人想砸电脑。其实,深圳中…

阅读更多 →
I2C、I2S、SPI、UART通信协议选型指南:从原理到实战 2026/9/27 10:32:40

I2C、I2S、SPI、UART通信协议选型指南:从原理到实战

1. 四种通信协议到底该怎么选:从踩坑现场说起i2c、i2s、spi、uart这四个词,凡是摸过单片机、写过驱动、调过传感器的人,几乎每天都在跟它们打交道。但真要让人用一句话说清楚“什么时候该用哪个”,很多人还是会卡壳。我自己在早期…

阅读更多 →
ESP32 -O2崩溃根源与实战排查:volatile、ISR、寄存器提升三大陷阱 2026/9/27 10:32:19

ESP32 -O2崩溃根源与实战排查:volatile、ISR、寄存器提升三大陷阱

1. 问题本质:不是编译器“变坏了”,而是代码里藏着没被发现的定时炸弹嵌入式ESP32开发中,把编译优化等级从-g -Og或-g -O0(俗称-debug模式)切换到-O2后程序直接崩溃——这绝不是ESP32芯片突然失灵,也不是ES…

阅读更多 →
3个坑别踩!合肥市门窗工程在哪个网站接活做怎么选 2026/9/27 10:32:08

3个坑别踩!合肥市门窗工程在哪个网站接活做怎么选

3个坑别踩!合肥市门窗工程在哪个网站接活做怎么选 做门窗工程的老板们,是不是常被那种套壳模板网站恶心到了?页面丑得没法看,加载还慢,客户点进来两秒就关了。这种站不仅留不住人,更别提转化订单了。很多人都在搜“合肥市门窗工程在哪个网站接活做怎么…

阅读更多 →
自己不会代码想建站?一文搞懂免费网页代码大全实操指南 2026/9/27 10:32:08

自己不会代码想建站?一文搞懂免费网页代码大全实操指南

自己不会代码想建站?一文搞懂免费网页代码大全实操指南 想做个网站,心里没底,怕被坑,又怕花钱多。很多老板和运营人第一反应就是去找【免费网页代码大全】,想着能不能直接抄一套来用。其实,这背后反映的是“自己不会代码想做网站”的普遍焦虑。…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉