当前位置: 首页 > news >正文

在运维工作中,docker封闭了哪些资源?

Docker 容器隔离的资源类型

Docker 通过 Linux 内核的多种机制实现了资源的隔离和限制,以下是 Docker 容器封闭的主要资源类型:

1. 进程隔离

  • 使用 Linux namespaces 实现进程隔离
  • 每个容器有自己的 PID namespace,看不到主机和其他容器的进程
  • docker top <container> 只能看到容器内的进程

2. 文件系统隔离

  • 使用 Mount namespace 提供独立的文件系统视图
  • 每个容器有自己独立的根文件系统
  • 通过 UnionFS (Overlay2等)实现分层文件系统

3. 网络隔离

  • 使用 Network namespace 提供独立网络栈
  • 每个容器有自己的网络接口、IP地址、路由表等
  • 可通过 bridge、host、none 等网络模式配置

4. 用户隔离

  • 使用 User namespace (可选启用)
  • 容器内的root用户在主机上映射为非root用户
  • 增强安全性,防止容器内特权提升影响主机

5. 进程间通信(IPC)隔离

  • 使用 IPC namespace 隔离System V IPC和POSIX消息队列
  • 容器间默认不能通过共享内存等方式通信

6. 主机名和域名隔离

  • 使用 UTS namespace 提供独立的主机名和域名
  • 每个容器可以有自己的hostname

7. 资源限制(cgroups)

  • CPU限制:通过cgroups限制CPU份额和核心使用
  • 内存限制:设置内存和swap使用上限
  • I/O限制:限制磁盘读写带宽
  • 设备访问:控制对设备文件的访问权限

8. 其他安全隔离

  • Capabilities:限制容器内进程的Linux能力
  • Seccomp:限制系统调用
  • SELinux/AppArmor:强制访问控制

不完全隔离的资源

  • 系统时间:默认与主机共享(可通过--uts=host单独配置)
  • 某些/proc和/sys文件:部分系统信息未被完全隔离
  • 内核模块:容器共享主机内核

Docker通过这些隔离机制提供了轻量级的虚拟化环境,但需要注意的是,容器并不是完全隔离的虚拟机,某些系统资源仍然是共享的。

http://www.sczhlp.com/news/768.html

相关文章:

  • 深度学习(pytorch量化)
  • 在运维工作中,传统虚拟化与docker有什么区别?
  • 在运维工作中,Docker怎么清理容器磁盘空间?
  • 在运维工作中,Dockerfile中常见指令有哪些?
  • 英语_阅读_Rivers are important in culture_单词_待读
  • 题解:P12151 【MX-X11-T5】「蓬莱人形 Round 1」俄罗斯方块
  • 题解:P1291 [SHOI2002] 百事世界杯之旅
  • 题解:P4170 [CQOI2007] 涂色
  • 课堂分组赛、组队赛小结
  • 【AI News | 20250725】每日AI进展
  • 题解:P13308 故障
  • 今天做什么
  • mmap提高LCD显示效率
  • 用 Python 构建可扩展的验证码识别系统
  • Java学习Day28
  • 语录
  • 深度学习(onnx量化)
  • Redisson
  • P13493 【MX-X14-T3】心电感应 题解
  • uni-app项目跑APP报useStore报错
  • DE_aemmprty 草稿纸合集
  • 22天
  • 基于 Python 的简易验证码识别系统设计与实现
  • java语法的学习笔记
  • 机械运动
  • 【2025.7.28】模拟赛T4
  • 《构建之法》读后感
  • 亚马逊发布TEACh数据集训练家用机器人
  • 日记
  • 完全使用TRAE和AI 开发一款完整的应用----第一周