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

从 Docker 到 runC

 从 Docker 到 runC:容器底层原理详解

 

目录

1. Docker 与 runC 的关系

2. Docker 的核心组件

3. runC 的核心功能

4. 实战示例:从 Docker 到 runC

4.1 示例场景:运行一个简单容器

4.2 Docker 底层调用 runC 的流程

4.3 查看 runC 的调用

4.4 直接调用 runC 创建容器

4.5 验证容器的隔离性

5. runC 的核心代码解析

5.1 创建命名空间

5.2 设置 Cgroups

5.3 挂载文件系统

6. Docker 与 runC 的协作流程图

7. 总结

 

1. Docker 与 runC 的关系

Docker 是一个容器化平台,其核心功能是通过容器运行时(Container Runtime)来创建和管理容器。runC 是 Docker 默认使用的底层容器运行时,它实现了 Open Container Initiative (OCI) 标准,负责与 Linux 内核交互,完成容器的创建、启动和销毁。

Docker 与 runC 的协作流程

  1. Docker 客户端(CLI)向 Docker 守护进程dockerd)发送指令(如 docker run)。
  2. dockerd 将指令转化为容器配置(JSON 格式),并调用 containerd(Docker 的容器管理服务)。
  3. containerd 通过 containerd-shim 调用 runC,由 runC 负责创建容器的命名空间(Namespaces)、控制组(Cgroups)和文件系统挂载。
  4. 容器启动后,containerd-shim 与容器保持通信,确保容器生命周期的管理。
2. Docker 的核心组件

Docker 的架构由多个组件组成,以下是关键部分:

组件作用
Docker CLI用户交互接口,用于执行 docker run 等命令。
DockerdDocker 守护进程,处理 Docker CLI 的请求,管理容器生命周期。
Containerd容器管理服务,负责与 runC 交互,管理容器的创建、运行和销毁。
runC容器运行时,负责与 Linux 内核交互,实现容器的隔离和资源限制。
libcontainerDocker 自研的容器管理库(已逐步被 containerd 替代)。
3. runC 的核心功能

runC 是一个轻量级的容器运行时,支持以下核心功能:

  • Namespaces 隔离:通过 Linux 的命名空间(PID、Mount、UTS、IPC、Network、User)实现容器的隔离。
  • Cgroups 资源限制:通过 Linux 的控制组(CPU、内存、磁盘 I/O)限制容器资源使用。
  • 文件系统挂载:挂载容器的根文件系统(RootFS),通常基于 UnionFS(如 AUFS、OverlayFS)。
4. 实战示例:从 Docker 到 runC

以下是一个完整的示例,演示如何通过 Docker 创建一个容器,并分析 runC 的底层行为。

相关文章:

  • 微信小程序:列表项上同样的css样式在IOS上字体大小不一样
  • uniapp uts 插件开发指南
  • 电路图识图基础知识-电气符号(二)
  • Nginx-配置详解
  • 【论文精读】2023 CVPRW--EAVSR现实世界视频超分辨率(RealWorld VSR)
  • 响应面法(Response Surface Methodology ,RSM)
  • 鸿蒙Ability对比Android的Fragment
  • CSS2相关知识点
  • IvorySQL-WASM:免安装的数据库探索之旅
  • 【沉浸式求职学习day47】【JSP详解】
  • [Datagear] [SQL]实现分组统计同时带汇总行的两种方式对比分析
  • 深入理解会话管理:Cookie、Session与JWT的对比与应用
  • windows 下用yolov5 训练模型 给到opencv 使用
  • leetcode:2469. 温度转换(python3解法,数学相关算法题)
  • 一、ZooKeeper:分布式系统中的隐形协调大师
  • Seismic source model -- Brune model ( ω^2 model)
  • 静态时序分析与约束
  • MATLAB NLP 工具箱 文本预处理教程
  • Flink基于Yarn多种启动方式详解
  • 【羊圈——状压 + DP / 记忆化搜索DP】
  • 淄博政府网站建设专家/病毒式营销案例
  • 网站建设添加汉语/东莞营销推广公司
  • 设计网站设计原则/企业查询系统官网
  • 荥阳网站建设/百度一下百度搜索入口
  • 昆山做网站好的/seo外包 靠谱
  • 网站结构怎么做适合优化/云南网站建设百度