type
status
date
slug
summary
category
tags
create_time
Aug 2, 2025 06:25 PM
icon
password
my_create_time

📝 前言

欢迎来到《云原生之旅第二部分》的第六篇文章。
在前五篇中,我们已经一起探索了 Docker 的基础知识、进阶功能、在 AI 领域的应用以及从单容器扩展到多容器管理的 Compose:
现在,我们将从 Docker 再延伸到 Containerd,这也是云原生之旅第二部分的最后一篇了,下一篇我们将正式进入云原生中更加广阔的 Kubernetes 领域。

🧭 背景介绍

在容器技术的世界里,Docker 几乎是入门的代名词。
但随着云原生生态的快速发展,Containerd 作为一个更底层、更专注的容器运行时,逐渐走到台前,成为 Kubernetes 等平台的默认选择。
Kuberentes 早在 1.20 版本就已宣布弃用 Docker,在 1.24 版本就已将 Containerd 作为默认运行时,并且彻底剔除了 docker 运行时的支持(dockershim)。
PS:但这不代表新版本的 Kubernetes 就不支持 Docker 了,只是默认没有加上这层配置。
因此我们在进入 Kubernetes 的世界之前有必要先了解一下 Containerd。
本文将带你从 Docker 出发,带领大家理解 Containerd 的定位、优势、使用场景以及常用命令。

🧠 本章知识卡片

notion image

🔍 使用场景

Containerd 主要用于以下场景:
  • Kubernetes 运行时
    • 作为 kubelet 的运行时(通过 CRI 接口),管理 Pod 中容器的生命周期。
  • 云平台与 PaaS
    • 大型云厂商在底层使用 containerd 提供高密度容器运行能力。
  • 轻量化容器运行
    • 不需要 Docker 提供的 CLI 与构建功能时,直接用 containerd 节省资源。
  • 嵌入式与边缘计算
    • 在资源受限设备(IoT、边缘节点)运行容器应用时,更轻巧高效。

📋 前提条件

在正式进入实战之前,请确保你已经具备以下条件:
  • 熟悉 Docker 的基础概念和操作,可参看本系列的前几篇文章。

🚀 详细步骤

1️⃣ 什么是 Containerd?

Containerd 是一个由 CNCF(Cloud Native Computing Foundation)托管的开源容器运行时。
它最早是 Docker 项目的一部分,在 2017 年 Docker 公司将其核心容器运行时抽离为一个名为 containerd 的独立项目,用于管理容器生命周期,包括镜像拉取、容器创建、执行、停止等。
随后将其捐献给了 CNCF 组织,在 2019 年 containerd 在 CNCF 发展成熟并毕业,现在已经是一个行业标准级的容器运行时,以其可扩展性、性能和稳定性而闻名。

2️⃣ 为什么要使用 Containerd?

相比直接使用 Docker 作为容器运行时,containerd 在以下方面更具优势:
精简
去掉了构建、编排等不必要的功能,仅保留运行相关能力,减少系统复杂度和资源占用。
性能与稳定性
作为底层运行时,少了 dockershim 这一层它的性能和资源消耗更优,并且更少出现 Docker Daemon 停止导致所有容器受影响的情况。
Kubernetes 原生支持
自 Kubernetes 1.24 起,已经移除对 Docker 的直接支持,推荐 containerd 作为默认运行时。
可维护性与生态
CNCF 项目,社区活跃,更新频繁,生态成熟。

3️⃣ Docker VS Containerd

Containerd 说白了其实也是 Docker 的底层一部分,Docker 的总体架构大致如下:
notion image
其中 Containerd 专注于容器运行的核心功能,虽然直接使用 Containerd 要精简很多,但是相应的很多功能也缺失啦,比如常用的 docker builddocker logs 等命令都没有。

4️⃣ Containerd 常用命令

Containerd 的命令与 Docker 可以说完全不一样,以下是一些 Containerd 的常用命令:
命令
功能说明
ctr images pull
拉取镜像,如果仓库是HTTP协议可再添加参数--plain-http
ctr images ls
查看本地镜像
ctr run nginx:alpine mynginx
运行容器,加-d参数在后台运行
ctr containers ls
查看容器列表
ctr containers rm mynginx
删除容器
ctr containers info mynginx
查看容器详情
ctr task exec -t --exec-id bash-1 mynginx /bin/sh
进入容器内部操作
还有很多其他命令这里加不一一介绍了。

✅ 总结

从 Docker 到 containerd,是容器技术发展走向分层化与专业化的自然趋势。
  • Docker 适合开发者日常构建、调试和测试镜像。
  • containerd 更适合生产环境中作为底层运行时,为 Kubernetes 等平台提供高效、稳定的容器执行能力。
未来在云原生生态中,containerd 将会继续稳固其运行时核心地位,而 Docker CLI 也将更多地作为开发工具存在。
在下一篇我们就将正式开始介绍 Kubernetes 篇内容啦~
💡
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
 
上一篇
Nginx+ACME服务器搭建
下一篇
第二部分:从 Docker 到 Docker Compose

评论
Loading...