docker引擎架构

本文介绍了Docker引擎的主要组成部分,包括docker cli、docker daemon、containerd和runc。docker daemon实现了Docker API,containerd负责容器生命周期管理,runc作为默认容器运行时,遵循OCI规范。libcontainer是Docker公司开发的用于替代LXC的工具,提供平台无关的容器交互功能。containerd在docker和oci层之间,管理容器和镜像。shim在容器创建后,作为其父进程保持容器运行状态并处理与daemon的通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:最近在读《深入浅出Docker》这本书,发现里面有个章节讲解的比较深入,所以,基于书的内容进行了整理,希望能对docker架构有个比较深入的理解。

概述

docker引擎是用来运行和管理容器的核心软件,通常将其代指为docker或者docker平台,docker引擎由如下主要的构建组成:docker cli、docker daemon、containerd以及runc,共同负责容器的创建和运行。docker引擎的架构示意图如下:
在这里插入图片描述
docker daemon实现了docker api,对容器的操作由containerd完成,containerd需要指挥与OCI相兼容的容器运行时来创建容器,默认情况下,docker使用runc来作为其默认的容器运行时,containerd调用runc,并确保docker镜像以OCI bundle的格式传给runc。其中,

  1. OCI(开放容器计划)定义了两个容器相关的规范:
    • 镜像规范
    • 容器运行时规范

runc是OCI容器运行时标准的参考实现,runc实际上是一个轻量级的、针对libcontainer进行了包装的命令行交互工具。runc生来只有一个作用,创建容器。

关于libcontainer:LXC提供了对诸如命名空间(Namespace)和控制组(CGroup)等基础工具的操作能力

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值