news 2026/6/9 21:02:25

【Docker入门】namespace 空间隔离

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Docker入门】namespace 空间隔离

Docker 的核心隔离技术之一:Namespace(命名空间)

Docker 容器之所以能“看起来像独立的系统”,最基础、最核心的机制就是Linux Namespace(命名空间)。

简单来说:
Namespace 让同一个内核上的不同进程群,看起来拥有完全独立的全局资源视图

Docker 主要使用的 6 种 Namespace(2025 年主流版本)

Namespace 类型隔离的内容容器里看到的效果典型体现 / 命令是否默认启用
PID进程 ID容器内 PID 从 1 开始,看不到宿主机其他进程ps aux只看到容器内的进程
UTS主机名 + 域名容器有独立 hostnamehostnamedomainname独立
MNT文件系统挂载点 / 根目录拥有独立的 /(根文件系统)mountdf -h只看到容器自己的文件系统
NET网络栈(网卡、IP、路由表、端口等)拥有独立的网络接口、IP、iptables规则ip addrifconfignetstat都是独立的
IPC进程间通信(System V IPC、消息队列等)容器内 IPC 资源互相隔离,不受宿主机影响ipcs只看到本容器 IPC 资源
User用户和用户组(UID/GID)容器内 uid=0(root)不等于宿主机的 uid=0容器内 root 权限很大,但对宿主机无实权视情况(daemon 配置)

(还有 cgroup namespace、time namespace 等较新的,但入门阶段一般不重点关注)

形象比喻(最容易理解的说法)

把 Namespace 想象成6副不同的眼镜

  • 戴上 PID 眼镜 → 只能看到自己这个房间里的人(进程)
  • 戴上 NET 眼镜 → 只能看到自己这个房间的网线和 IP
  • 戴上 MNT 眼镜 → 只能看到自己房间的家具和文件
  • 戴上 UTS 眼镜 → 房间门牌写的是自己想要的名字
  • ……

一个进程只要被放进这一整套“眼镜组合”里,它就觉得自己运行在一个独立的“小电脑”上 —— 这就是容器的“空间隔离”本质。

动手实验(强烈推荐自己敲一遍)

# 1. 进入一个 busybox 容器,看看隔离效果dockerrun -it --rm busybox# 在容器里执行下面命令,对比宿主机hostnamepsauxipaddrmount|grep'^/'whoami# 通常是 rootid# uid=0(root)# 退出容器后,在宿主机上对比
# 2. 查看宿主机上容器的 namespace(需要 root 权限)# 假设容器 ID 是 abc123ls-l /proc/$(dockerinspect abc123 -f'{{.State.Pid}}')/ns/

你会看到类似这样的输出:

total 0 lrwxrwxrwx 1 root root 0 Jan 24 17:30 cgroup -> cgroup:[402653XXXX] lrwxrwxrwx 1 root root 0 Jan 24 17:30 ipc -> ipc:[402653XXXX] lrwxrwxrwx 1 root root 0 Jan 24 17:30 mnt -> mnt:[402653XXXX] lrwxrwxrwx 1 root root 0 Jan 24 17:30 net -> net:[402653XXXX] lrwxrwxrwx 1 root root 0 Jan 24 17:30 pid -> pid:[402653XXXX] lrwxrwxrwx 1 root root 0 Jan 24 17:30 user -> user:[402653XXXX] lrwxrwxrwx 1 root root 0 Jan 24 17:30 uts -> uts:[402653XXXX]

数字相同的表示在同一个 namespace 里,不同的就实现了隔离。

总结一句话口诀(背下来很有用)

“六大命名空间,PID UTS MNT NET IPC User”
“进程、主机名、文件、网络、通信、用户全隔离”

下一步最该掌握的知识点(推荐顺序)

  1. Namespace 怎么实现的隔离(今天讲的)
  2. cgroups怎么做资源限制(CPU/内存/IO)
  3. UnionFS / OverlayFS 怎么实现分层镜像
  4. Docker network 模式(bridge / host / none)
  5. user namespace 开启后带来的安全提升

有哪一部分想深入一点,或者想看某个 namespace 的更详细动手实验,可以直接告诉我~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 14:40:47

数字孪生提升产品质量追溯能力:操作指南

以下是对您提供的博文《数字孪生提升产品质量追溯能力:技术原理与工程实践指南》的 深度润色与结构优化版本 。本次改写严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、专业、有“人味”——像一位在汽车电子产线摸爬滚打十年的系统架构师,在技术分享会上边画图边讲…

作者头像 李华
网站建设 2026/6/9 20:57:21

零基础也能用的AI修图:GPEN镜像一键搞定模糊人脸

零基础也能用的AI修图:GPEN镜像一键搞定模糊人脸 你有没有翻出过老相册里那张泛黄的照片?亲人微笑的脸庞却糊成一片,想发朋友圈又怕被说“这图太糊了”。别急——现在不用找修图师、不用学PS,打开浏览器,上传照片&…

作者头像 李华
网站建设 2026/6/4 23:48:38

多主I2C通信协议层解析:全面讲解起始停止条件

以下是对您提供的博文内容进行 深度润色与专业重构后的版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、老练、有工程师现场感 ✅ 所有标题均重写为更精准、生动、具引导性的技术表达(非模板化) ✅ 内容逻辑完全重组:以“问题驱动 → 原理穿透 →…

作者头像 李华
网站建设 2026/6/9 21:01:28

LVGL界面编辑器Flex布局模式全面讲解

以下是对您提供的博文《LVGL界面编辑器Flex布局模式全面技术解析》的 深度润色与重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI腔调与模板化表达(如“本文将从……几个方面阐述”) ✅ 摒弃所有程式化标题(引言/概述/总结/展望),代之以自然、连贯、有节奏的…

作者头像 李华
网站建设 2026/6/6 21:52:59

自动驾驶感知入门,用YOLOE识别道路元素

自动驾驶感知入门,用YOLOE识别道路元素 在智能驾驶系统中,“看得清”是“走得稳”的前提。传统车载视觉方案常受限于封闭词汇表——只能识别训练时见过的几十类物体,面对施工锥桶、倒伏路牌、临时路障等长尾场景束手无策。而真实道路从不按预…

作者头像 李华
网站建设 2026/6/5 4:51:44

不只是开箱即用:麦橘超然还能这样深度定制

不只是开箱即用:麦橘超然还能这样深度定制 1. 从“能用”到“好用”:重新认识麦橘超然的潜力 很多人第一次打开麦橘超然 - Flux 离线图像生成控制台时,会以为它只是一个“填提示词、点生成、看结果”的简易工具。界面简洁,操作直…

作者头像 李华