联系

容器运行时(Container Runtime)是Kubernetes(k8s)最重要的组件之一,负责管理镜像和容器的生命周期。Kubelet通过Container Runtime Interface (CRI) 与容器运行时交互,以管理镜像和容器。

Containerd调用链更短,组件更少,更稳定,占用节点资源更少。 建议选择containerd。

当您遇到以下情况时,请选择docker作为运行时组件:

  • 如需使用docker in docker。
  • 如需在CCE节点使用docker build/push/save/load等命令。
  • 如需调用docker API。
  • 如需docker compose或docker swarm。

Containerd创建并启动的容器会被kubelet立即删除,不支持暂停、恢复、重启、重命名、等待容器,Containerd不具备docker构建、导入、导出、比较、推送、查找、打标签镜像的能力,Containerd不支持拷贝文件,可通过修改containerd的配置文件实现登录镜像仓库。

Containerd和Docker组件常用命令

Containerd不支持dockerAPI和dockerCLI,但是可以通过cri-tool命令实现类似的功能。

镜像相关功能

容器相关功能

POD相关功能

调用链区别

Docker作为k8s容器运行时,调用关系如下:

kubelet --> docker shim (在 kubelet 进程中) --> dockerd --> containerd

Containerd作为k8s容器运行时,调用关系如下:

kubelet --> cri plugin(在 containerd 进程中) --> containerd

其中dockerd虽增加了swarm cluster、docker build、docker API等功能,但也会引入一些bug,而与containerd相比,多了一层调用。

Containerd和Docker的关系的更多相关文章

  1. containerd 与安全沙箱的 Kubernetes 初体验

    作者 | 易立  阿里云资深技术专家 containerd 是一个开源的行业标准容器运行时,关注于简单.稳定和可移植,同时支持 Linux 和 Windows. 2016 年 12 月 14 日,Do ...

  2. [置顶] Kubernetes1.7新特性:支持绕过docker,直接通过containerd管理容器

    背景情况 从Docker1.11版本开始,Docker依赖于containerd和runC来管理容器,containerd是控制runC的后台程序,runC是Docker公司按照OCI标准规范编写的一 ...

  3. K8s 终将废弃 docker,TKE 早已支持 containerd

    近日 K8s 官方称最早将在 1.23版本弃用 docker 作为容器运行时,并在博客中强调可以使用如 containerd 等 CRI 运行时来代替 docker.本文会做详细解读,并介绍 dock ...

  4. Kubernetes容器运行时弃用Docker转型Containerd

    文章转载自:https://i4t.com/5435.html Kubernetes社区在2020年7月份发布的版本中已经开始了dockershim的移除计划,在1.20版本中将内置的dockersh ...

  5. OpenStack、虚拟机以及和当前流行的k8s、Docker四者之间的关系

    一.OpenStack与虚拟机之间的关系 OpenStack使用Python语言开发,是虚拟资源管理工具,他可以协助你搜集各种资源,并加以利用以及管理,实现物理资源的高效使用和安全.虚拟化物理机这个动 ...

  6. k8s和Docker关系简单说明

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 这篇文章主要介绍了k8s和Docker关系简单说明,本文利用图文讲解的很透彻,有需要的同学可以 ...

  7. Kubernetes将弃用Docker!与 containerd容器引擎

    时间戳:2022-06-07 20:32:19 星期二 撰写文档参考:(阿良-腾讯课堂)Kubernetes将弃用Docker 参考博客k8s入坑之路(3)containerd容器 container ...

  8. Centos下使用containerd管理容器:5分钟从docker转型到containerd

    目录 一.系统环境 二.前言 三.containerd 四.部署containerd 4.1 安装containerd 4.2 containerd配置文件 4.3 配置containerd阿里云镜像 ...

  9. Docker改名为Moby了吗?

    背景 在DockerCon17上,Docker发布了两个新的开源项目LinuxKit和Moby.而原来在Github上托管的docker也随着PR #32691的合入正式变为Moby.这究竟是什么情况 ...

随机推荐

  1. C# 11 的新特性和改进前瞻

    前言 .NET 7 的开发还剩下一个多月就要进入 RC,C# 11 的新特性和改进也即将敲定.在这个时间点上,不少新特性都已经实现完毕并合并入主分支 C# 11 包含的新特性和改进非常多,类型系统相比 ...

  2. pip安装报错Could not install packages due to an EnvironmentError: Missing dependencies for SOCK

    unset all_proxy && unset ALL_PROXY

  3. 研发效能生态完整图谱&DevOps工具选型必看

    本文主要梳理了研发效能领域完整的方向图谱以及主流工具,其中对少部分工具也做了一些点评.看了之后,大家可以对研发效能这个领域有个整体认识,同时研发效能落地的时候也有对应的工具(黑话叫抓手)可以选择. 我 ...

  4. Reading configuration from: /usr/local/src/zookeeper/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg

    2021-04-25 00:15:48,112 [myid:] - INFO  [main:QuorumPeerConfig@174] - Reading configuration from: /u ...

  5. linux环境下修改网卡为eth0

    如果没有在安装系统之前传递内核参数将⽹卡名称更改为eth*,则可以在安装系统后修改 vim /etc/default/grub GRUB_DEFAULT=0 GRUB_TIMEOUT_STYLE=hi ...

  6. raspberrypi系统在加入k8s作为node节点时遇到的问题

    新买的树莓派4b到货后就迫不及待的烧录上raspberrypi系统,将新派加入我的k8s集群,期间遇到了点小挫折,好歹也一个一个解决了: 一.kubelet版本不对导致无法加入k8s集群 在执行kub ...

  7. C# 发送Http请求,传文件和其他参数

    /// <summary> /// httpWebRequest post by dic /// </summary> /// <param name="url ...

  8. 5.6 NOI模拟

    \(5.6\ NOI\)模拟 明天就母亲节了,给家里打了个电话(\(lj\ hsez\)断我电话的电,在宿舍打不了,只能用教练手机打了) 其实我不是很能看到自己的\(future,\)甚至看不到高三的 ...

  9. FutureTask源码深度剖析

    FutureTask源码深度剖析 前言 在前面的文章自己动手写FutureTask当中我们已经仔细分析了FutureTask给我们提供的功能,并且深入分析了我们该如何实现它的功能,并且给出了使用Ree ...

  10. Flutter-填平菜鸟和高手之间的沟壑

    Flutter-填平菜鸟和高手之间的沟壑 准备写作中... 1.Flutter-skia-影像,Flutter skia-图形渲染层.应用渲染层2.方法通道使用示例,用于演示如何使用方法通道实现与原生 ...