目 录CONTENT

文章目录

Docker 与 containerd 命令对比及使用指南

Administrator
2025-08-23 / 0 评论 / 6 点赞 / 41 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2025-08-27,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Docker 与 containerd 命令对比及使用指南

1. 引言

1.1 什么是 containerd?

containerd 是一个高性能的容器运行时,它专注于容器的生命周期管理。作为一个由 CNCF(Cloud Native Computing Foundation)托管的项目,containerd 是 Docker 和 Kubernetes 等平台背后的核心组件之一。与 Docker 相比,containerd 更加专注于容器的运行和管理,而不涉及镜像构建和其他更高层次的功能。因此,containerd 可以看作是 Docker 引擎的一个重要组成部分。

1.2 为什么要使用 containerd?

  • 轻量级containerd 专注于容器运行时,不包含 Docker 中的高级功能(如镜像构建、容器网络管理等)。
  • 性能:因为它是一个精简版容器运行时,containerd 的启动和执行速度比 Docker 更快。
  • 可扩展性containerd 可以与其他容器编排工具(如 Kubernetes)紧密集成,尤其是它作为 Kubernetes 中的容器运行时(CRI)的一部分。
  • 与 Docker 的关系:Docker 引擎内部使用 containerd 作为容器的运行时,因此容器管理操作在 Docker 和 containerd 中有很多相似之处。

1.3 如何使用 containerd?

containerd 的使用方式较为底层,主要通过命令行工具 ctr 来管理容器。你可以通过以下几个步骤来开始使用:

  1. 安装 containerd。
  2. 使用 ctr 命令来拉取镜像、运行容器等。
  3. 结合 Kubernetes 使用 containerd 作为容器运行时。

2. Docker 与 containerd 命令对比

下面将 Docker 和 containerd 的常用命令按照类别进行整理,以帮助你快速对比学习。

2.1 容器管理

操作Docker 命令containerd 命令说明
启动容器docker run <image>ctr run <image> <container_name>启动容器,ctr run 在 containerd 中用于启动容器。
查看容器docker psctr containers list查看当前运行的容器,ctr containers list 列出容器。
停止容器docker stop <container_id>ctr tasks kill <container_id>停止容器,containerd通过task管理容器进程。
启动已停止容器docker start <container_id>ctr tasks start <container_id>启动已经停止的容器task。
删除容器docker rm <container_id>ctr containers delete <container_id>删除容器,containerd需要先删除task再删除container。

2.2 镜像管理

操作Docker 命令containerd 命令说明
查看镜像docker imagesctr images list查看本地镜像,ctr images listdocker images 类似。
拉取镜像docker pull <image>ctr images pull <image>拉取镜像,docker pullctr images pull 用法相同。
删除镜像docker rmi <image_name>ctr images delete <image_name>删除镜像,containerd使用delete而非rm。
导出镜像docker save <image> > <file>.tarctr images export <file>.tar <image>导出镜像,命令格式不同。
导入镜像docker load < <file>.tarctr images import <file>.tar导入镜像。

2.3 容器任务和执行

操作Docker 命令containerd 命令说明
执行命令到容器docker exec -it <container_id> <command>ctr tasks exec -t <container_id> <command>在容器内执行命令,docker execctr tasks exec 类似。
查看容器日志docker logs <container_id>ctr tasks logs <container_id>查看容器日志,docker logsctr tasks logs 用法相同。
查看容器资源使用docker statsctr tasks metrics查看资源使用情况,containerd使用metrics命令。

2.4 容器生命周期管理

操作Docker 命令containerd 命令说明
创建容器镜像快照没有直接命令ctr snapshots prepare <key> <parent>containerd 支持快照功能,Docker 没有该功能。
查看事件和日志docker eventsctr events查看容器事件,docker eventsctr events 用法相似。

3. 总结

3.1 主要区别

  • Docker:提供了一个完整的容器解决方案,包含镜像构建、容器管理、网络和存储管理等功能,适合大部分用户的需求。
  • containerd:更加轻量和底层,专注于容器的生命周期管理,是 Docker 和 Kubernetes 的核心容器运行时。其功能更加精简和专一,适合需要高度定制的场景。

3.2 适用场景

  • Docker:适用于大部分开发者和运维人员,需要一个完整的容器管理工具来管理容器生命周期、镜像构建和推送等。
  • containerd:适用于需要更高性能、更精细控制和与 Kubernetes 等编排工具紧密集成的场景,通常适用于生产环境。

4. 参考资料

6
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区