news 2026/4/3 4:46:19

Docker容器隔离(namespace+cgroups)-底层原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker容器隔离(namespace+cgroups)-底层原理

文章目录

  • Docker容器隔离
  • 1.namespace-进程通信限制
  • 2. cgroups-资源限制
    • 资源隔离参数示例
    • 资源隔离使用方式
    • cgroups四大功能
  • 测试时注意
  • 总结

✨✨✨学习的道路很枯燥,希望我们能并肩走下来!

编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。



本文开始

Docker容器隔离

1.namespace-进程通信限制

命名空间简介:

命名空间是 Linux 内核提供的一种机制,用于将系统资源(如进程、网络、文件系统等)隔离开来,使得在一个命名空间中的资源对其他命名空间不可见或不可访问。

namespace :是 linux 中用来隔离进程的手段,容器就是使用该技术来进行隔离的。

可以把进程当做是对讲机,而 namespace 就是频段。两个对讲机(进程)要互相通信就需要调整到相同的频段上(namespace)。

namespace:进程间通信隔离

# 1.启动一个容器# 2. 进入虚拟文件系统,查看进程信息# proc文件夹下会有多个名称是数字的文件夹-每个数字文件夹就是一个进程cd/proc/5131# 3. 进入进程信息文件夹,包含容器中各种命名空间cdns

进程文件夹命名空间信息:


根据命名空间隔离的内容如下:
ipc: 进程间通信命名空间
mnt:文件挂载命名空间
net: 网络命名空间
pid: 进程id名称空间
user: 用户名称空间

故障注入可以使用到命名空间

2. cgroups-资源限制

cgroups :是 linux 用来限制进程使用资源的手段。容器也是利用这个技术进行资源的隔离。

#查看当前系统的 cgroupsmount-t cgroups

cgroups: 资源隔离

资源隔离参数示例

资源类型Docker 参数示例作用
CPU--cpus=1.5--cpu-quota最多使用 1.5 个 CPU 核心
内存-m 2g--memory=2048m最多使用 2GB 内存,超了会被 kill
磁盘 IO--blkio-weight限制磁盘读写速度
进程数--pids-limit=100最多只能起 100 个进程

资源隔离使用方式

使用方式:在docker run启动容器时指定参数即可;如-m, -cpus
资源隔离一般限制内存和cpu

# 在容器运行时,直接使用参数指定资源限制# 限制内存512兆,cpu两核dockerrun --name=nginx -d -m 512m --cpus=2nginx

【注】k8s通过cgroups计算剩余资源,编写简单脚本,计算剩余资源,但也是使用的cgroups

cgroups四大功能

  1. 资源限制:可以对任务使用的资源总额进行限制。
  2. 优先级分配:通过分配cpu时间片数量以及磁盘IO带宽大小,实际上相当于控制了任务运行 优先级。
  3. 资源统计:可以统计系统的资源使用量,如cpu时长,内存用量等。
  4. 任务控制:cgroups可以对任务执行挂起,恢复等操作。

测试时注意

概念作用测试场景
Namespace隔离环境多版本并行测试、避免端口/进程冲突
Cgroups限制资源模拟弱机环境、防止资源耗尽、稳定性测试
场景你能做什么
故障注入人为限制内存/CPU,观察系统降级或告警是否正常
性能测试确保测试容器不会吃光宿主机资源影响其他任务
日志/监控通过/sys/fs/cgroup/查看容器实际资源消耗(高级)

总结

✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

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

如何根据指标构建高意向客户评分模型、数据合并和处理缺失值的具体案例

如何根据指标构建高意向客户评分模型、数据合并和处理缺失值的具体案例 如何根据指标构建高意向客户评分模型、数据合并和处理缺失值的具构建高意向客户的评分模型 在当今竞争激烈的市场环境中,企业需要精准识别高意向客户以提升营销效率和转化率。高意向客户评分模…

作者头像 李华
网站建设 2026/3/15 6:28:48

如何恢复CAD快捷中的备注信息?

在CAD团队协作或长期项目中,设计师常使用快捷命令或自定义工具添加备注信息,用以记录设计意图、修改要点或协同说明。一旦这些关键备注因误操作、软件意外关闭或文件版本问题而丢失,将直接影响工作延续性与团队沟通效率。 针对这一痛点&…

作者头像 李华
网站建设 2026/4/1 21:40:13

Vidu Agent1.0正式上线:开启YESVIDU全球创意周

Vidu官方今日正式宣布 Vidu Agent 1.0上线,并同步启动面向创作者的 “全球创意周”(Yes Vidu Global Creativity Week)。作为一款定位 “少做多想” 的视频创作代理,Agent 1.0旨在通过自动化工作流加速创意落地。官方同时公开了限…

作者头像 李华
网站建设 2026/3/13 0:07:56

手写一个智能指针:从 unique_ptr 到 shared_ptr 的引用计数原理

博主介绍:程序喵大人 35 - 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇&#x…

作者头像 李华
网站建设 2026/3/27 8:14:26

面试紧张如何正确应对

面试紧张不是缺陷,而是可以转化的能量,关键在于掌握正确的方法。 超过85%的求职者在面试前会感到明显紧张,这不仅影响表现,还可能错失心仪的工作机会。即使在职场经验丰富的人群中,面试紧张仍然常见。美国成人教育学专…

作者头像 李华
网站建设 2026/3/17 18:24:40

2026 如何快速选择股票、外汇金融行情数据 API

作为一名在量化交易、金融数据分析领域摸爬滚打了多年的开发者,从最初为了做一个简单的股票回测系统,踩遍了免费 API 数据延迟、付费 API 对接复杂的坑,到现在能根据项目需求快速锁定合适的金融行情 API,2026 年的金融数据生态相比…

作者头像 李华