再见 Docker如何5分钟转型 containerd

Docker作为非常流行的容器技术,之前经常有文章说它被K8S弃用了,取而代之的是另一种容器技术containerd!其实containerd只是从Docker中分离出来的底层容器运行时,使用起来和Docker并没有啥区别,本文主要介绍下containerd的使用,希望对大家有所帮助!

containerd简介

containerd是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。containerd可以在宿主机中管理完整的容器生命周期,包括容器镜像的传输和存储、容器的执行和管理、存储和网络等。

Docker vs containerd

containerd是从Docker中分离出来的一个项目,可以作为一个底层容器运行时,现在它成了Kubernete容器运行时更好的选择。

不仅仅是Docker,还有很多云平台也支持containerd作为底层容器运行时,具体参考下图。

K8S CRI

K8S发布CRI(Container Runtime Interface),统一了容器运行时接口,凡是支持CRI的容器运行时,皆可作为K8S的底层容器运行时。

K8S为什么要放弃使用Docker作为容器运行时,而使用containerd呢?

如果你使用Docker作为K8S容器运行时的话,kubelet需要先要通过 dockershim 去调用Docker,再通过Docker去调用containerd。

如果你使用containerd作为K8S容器运行时的话,由于containerd内置了 CRI 插件,kubelet可以直接调用containerd。

使用containerd不仅性能提高了(调用链变短了),而且资源占用也会变小(Docker不是一个纯粹的容器运行时,具有大量其他功能)。

containerd使用

如果你之前用过Docker,你只要稍微花5分钟就可以学会containerd了,接下来我们学习下containerd的使用。

crictl ps

CONTAINER   IMAGE    CREATED     STATE    NAME    ATTEMPT    POD ID
4ca73ded41bb6  3b0b04aa3473f  Less than a second ago Running    helm    20     21103f0058872
3bb5767a81954  296a6d5035e2d  About a minute ago  Running    coredns    1     af887263bd869
a5e34c24be371  0346349a1a640  About a minute ago  Running    nginx    1     89defc6008501

查看所有镜像;

crictl images

IMAGE          TAG     IMAGE ID   SIZE
docker.io/library/nginx     1.10    0346349a1a640  71.4MB
docker.io/rancher/coredns-coredns   1.8.0    296a6d5035e2d  12.9MB
docker.io/rancher/klipper-helm    v0.4.3    3b0b04aa3473f  50.7MB
docker.io/rancher/local-path-provisioner v0.0.14    e422121c9c5f9  13.4MB
docker.io/rancher/metrics-server   v0.3.6    9dd718864ce61  10.5MB
docker.io/rancher/pause     3.1     da86e6ba6ca19  327kB

进入容器内部执行bash命令,这里需要注意的是只能使用容器ID,不支持使用容器名称;

crictl exec -it a5e34c24be371 /bin/bash

查看容器中应用资源占用情况,可以发现占用非常低。

crictl stats

CONTAINER   CPU %    MEM     DISK    INODES
3bb5767a81954  0.54    14.27MB    254B    14
a5e34c24be371  0.00    2.441MB    339B    16

总结

从Docker转型containerd非常简单,基本没有什么门槛。只要把之前Docker命令中的 docker 改为 crictl 基本就可以了,果然是同一个公司出品的东西,用法都一样。所以不管K8S到底弃用不弃用Docker,对我们开发者使用来说,基本没啥影响!

到此这篇关于再见 Docker如何5分钟转型 containerd的文章就介绍到这了,更多相关docker转型containerd内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 再见 Docker如何5分钟转型 containerd

    Docker作为非常流行的容器技术,之前经常有文章说它被K8S弃用了,取而代之的是另一种容器技术containerd!其实containerd只是从Docker中分离出来的底层容器运行时,使用起来和Docker并没有啥区别,本文主要介绍下containerd的使用,希望对大家有所帮助! containerd简介 containerd是一个工业级标准的容器运行时,它强调简单性.健壮性和可移植性.containerd可以在宿主机中管理完整的容器生命周期,包括容器镜像的传输和存储.容器的执行和管理.存

  • docker初识之五分钟认识docker

    什么是docker? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 把他想象成一个用了一种新颖方式实现的超轻量虚拟机,在大概效果上也是正确的.当然在实现的原理和应用上还是和VM有巨大差别的,并且专业的叫法是应用容器(Application Container). 为啥要用docker? 那么应用容器长什么样子呢,一个做好的应用容器长得就

  • Centos7安装Docker(2020最新亲测可用,直接复制粘贴即可)

    这里参考官方文档进行操作: https://docs.docker.com/engine/install/centos/ 1.卸载docker旧版本(我的centos7是新的,所以运行后不删除任何软件包) yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engi

  • Docker安装阿里云服务器和在虚拟机安装遇到的坑(问题小结)

    Docker安装(阿里云服务器) Docker官方centos安装教程 卸载旧版本 $ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 使用存储库安装 在新主机上首次安装Docker Engine之前,需要设置Docker存储库.之后,您

  • CentOS 8安装Docker的详细教程

    1.御载以前的版本 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate dokcer-logrotate docker-engin 御载docker-ce(ce代表社区版) yum remove docker-ce docker-ce-cli containerd.io 删除docker资源 rm -rf /var/lib/docker 2

  • Docker容器化应用与结构

    目录 容器化应用 什么是容器化应用 应用怎么打包 Docker 镜像组成 联合文件系统 Linux 内核 Docker 结构 Docker 服务与客户端 Docker 客户端 容器运行时 Docker 引擎 Docker 引擎变化 Docker 引擎的架构 containerd shim runc 容器化应用 什么是容器化应用 containerized applications 指容器化的应用,我们常常说使用镜像打包应用程序,使用 Docker 发布.部署应用程序,那么当你的应用成功在 Doc

  • 安装Docker配置阿里云镜像加速(图文教程)

    目录 docker安装环境准备: 环境查看: 安装Docker: 一.下载需要的安装包: 二.设置Docker镜像仓库: 三.安装Docker相关内容 启动Docker: 卸载Docker: 阿里云镜像加速: docker安装环境准备: 配置一台可以上网的虚拟机: 需要一台可以使用的虚拟机,这里使用的是Linux的centos7系统配置docker环境. 这样配置的虚拟机就可以流畅运行docker的学习环境了. 环境查看: #查看系统内核是否是3.0以上的 uname -r #查看系统版本:ca

  • 一篇文章搞懂K8S高级特性

    目录 K8S高级特性 高级特性 总结 kubectl排查服务问题 K8S真的放弃Docker了吗? K8S高级特性 K8S中还有一些高级特性有必要了解下,比如弹性扩缩应用(见上文).滚动更新(见上文).配置管理.存储卷.网关路由等. 在了解这些高级特性之前有必要先看几个K8S的核心概念: ReplicaSet ReplicaSet确保任何时间都有指定数量的Pod副本在运行.通常用来保证给定数量的.完全相同的Pod的可用性.建议使用Deployment来管理ReplicaSet,而不是直接使用.

  • 5分钟安装docker详细步骤

    Centos安装docker需要操作系统是 CentOS 7 or 8,必须启用centos extras存储库.默认情况下,此存储库处于启用状态,但如果已禁用它,则需要重新启用它. 卸载旧版本 老版本的docker被称作docker 或者 docker-engine,如果有老版本的docker,把它和相关依赖一起卸载. $ remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \

  • 10分钟学会docker

    本文大概耗时10分钟. 你将会看到以下内容: 为什么要用docker docker几个概念 如何运行docker container 如何build image 本文假定你有以下基础: 1.linux命令行(见参考链接) 2.必要的英语词汇 为什么要用docker? 在探讨docker能为我们带来的好处时,我们先得明白docker是什么.docker官网是这样描述的"Docker is the world's leading software container platform."由

随机推荐