containerd是容器虚拟化技术,从docker中剥离出来,形成开放容器接口(OCI)标准的一部分。

docker对容器的管理和操作基本都是通过containerd完成的。Containerd 是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。Containerd 可以在宿主机中管理完整的容器生命周期:容器镜像的传输和存储、容器的执行和管理、存储和网络等。详细点说,Containerd 负责干下面这些事情:

•管理容器的生命周期(从创建容器到销毁容器)

•拉取/推送容器镜像

•存储管理(管理镜像及容器数据的存储)

•调用 runC 运行容器(与 runC 等容器运行时交互)

•管理容器网络接口及网络

注意:Containerd 被设计成嵌入到一个更大的系统中,而不是直接由开发人员或终端用户使用。

我们可以从下面几点来理解为什么需要独立的 containerd:

•继续从整体 docker 引擎中分离出的项目(开源项目的思路)

•可以被 Kubernets CRI 等项目使用(通用化)

•为广泛的行业合作打下基础(就像 runC 一样)

docker安装后containerd默认已安装,containerd包含如下命令组件:

•containerd:高性能容器运行时。

•ctr:containerd的命令行客户端。

•runc:运行容器的命令行工具。

docker、containerd、docker-shim、runC关系:

docker:docker本身而言,包括了docker client和dockerd,dockerd实属是对容器相关操作的api的最上层封装,直接面向操作用户。

containerd:dockerd实际真实调用的还是containerd的api接口(rpc方式实现),containerd是dockerd和runC之间的一个中间交流组件。

docker-shim:一个真实运行容器的载体,每启动一个容器都会起一个新的docker-shim的进程。它通过指定三个参数:容器ID、boundle目录(containerd对应某个容器生成目录)、运行时二进制(默认是runC)来调用runC的api创建一个容器。

runC:一个命令行工具端,根据OCI的标准来创建和运行容器。

containerd应用

docker镜像和containerd镜像通用,但组织方式和存放目录不同,导致docker与ctr命令不通用,各自管理自己的镜像和容器。

此外k8s还有客户端命令crictl,用法与docker基本相同,可crictl -h查看用法。

containerd的默认配置文件为/etc/containerd/config.toml,可通过命令:

containerd config default

输出默认配置,可参考文档https://github.com/containerd/containerd/blob/master/docs/ops.md

root = "/var/lib/containerd"
state = "/run/containerd"
oom_score = 0
……

root键值用于存储containerd持久化数据。

state键值用于存储containerd临时性数据,设备重启后数据丢失。

显示containerd镜像

sudo ctr images ls

拉取hello-world镜像

sudo ctr images pull docker.io/library/hello-world:latest

注:必须全路径,从dockerhub上下载默认hello-world镜像。

运行容器

sudo ctr run docker.io/library/hello-world:latestmy_hello-world
sudo ctr run -t docker.io/library/busybox:latestmybusybox_demosh

linux containerd 容器 简介相关推荐

  1. docker容器简介及安装

    docker容器简介及安装 一.docker的前世今生 早期 过度 目前 二.什么是docker 三.docker核心概念 1.镜像 2.容器 3.仓库 四.docker容器和虚拟机的区别 五.doc ...

  2. Linux Namespace机制简介

    最近Docker技术越来越受到关注,作为Docker中很重要的一项技术,Namespace也就经常在Docker的简介里面看到. 在这里总结一下它的内部机制.也解决一下自己原来的一些疑惑. Names ...

  3. 1.Containerd容器运行时初识与尝试

    0x00 前言简述 1.基础介绍 2.专业术语 3.架构简述 0x01 安装配置 1.Ubuntu安装Containerd.io流程 0x02 简单使用 1.镜像拉取与运行 2.创建和使用网络 3.与 ...

  4. Linux 学习 -- 容器技术

    Linux 学习 – 容器技术 容器基础概述 容器部署 一.容器基础概述 容器(Container) : 定义:指的是针对应用所需的运行环境资源(依赖库/目录/网络/用户--等)进行整体封装的技术. ...

  5. linux wc 命令简介

    此wc命令不是让大家没有食欲的地方.而是linux下一个简单的小命令. NAME wc - word, line, character, and byte count SYNOPSIS wc [-cl ...

  6. 容器 root权限运行_【漏洞通告】Containerd容器逃逸漏洞通告 (CVE202015257)

    2020年12月1日,Containerd发布更新,修复了一个可造成容器逃逸的漏洞CVE-2020-15257,并公开了相关说明.通过受影响的API接口,攻击者可以利用该漏洞以root权限执行代码,实 ...

  7. Kali Linux 安全渗透教程第二更Linux安全渗透简介

    第1章  Linux安全渗透简介 渗透测试是对用户信息安全措施积极评估的过程.通过系统化的操作和分析,积极发现系统和网络中存在的各种缺陷和弱点,如设计缺陷.技术缺陷.本章将简要介绍Linux安全渗透及 ...

  8. containerd — 容器引擎

    目录 文章目录 目录 containerd 容器引擎的构成 containerd 容器引擎的构成 上图如果把它分成左右两边的话,可以认为 containerd 提供了两大功能: runtime,也就是 ...

  9. 资料收集新一代 Linux 文件系统 btrfs 简介

    来自: http://www.ibm.com/developerworks/cn/linux/l-cn-btrfs/ Btrfs 简介 文件系统似乎是内核中比较稳定的部分,多年来,人们一直使用 ext ...

最新文章

  1. oracle java连接配置
  2. 【邮件】生产数据库优化第一步:重建索引
  3. 有效括号 python_python 有效的括号的实现代码示例
  4. python 输出结果图文混排_div css图文混排列表设计中的基础问题总结
  5. matlab 读取文件夹底下所有txt文件
  6. PYTORCH批标准化
  7. JavaWeb Tomcat原理理解
  8. sas 服务器版安装文件,安装SAS怎样配置服务器
  9. 物流系统服务开发设计专业方案
  10. KIS迷你版软件用户常见问题
  11. 【数据分析师_02_SQL+MySQL】019_MySQL联结表(WHERE,AND,PK-FK,INNER JOIN)
  12. 统计学习方法概论之思维导图图解
  13. oracle存储过程中游标定义
  14. java中已实现的md5加密
  15. 一年的第多少周+一个月的第多少天+一周的第多少天
  16. 智慧林业解决方案-最新全套文件
  17. Gradient Accumulation 梯度累加 (Pytorch)
  18. 联合国 ITU 立项成功,DevOps 标准开启国际化模式!
  19. .NET Remoting 最简单示例
  20. Hello World | 每个被生活暴击的成年人,都要学会按重启键

热门文章

  1. RIP基于跳数的负载均衡
  2. WinAPI: CreateDirectoryEx - 根据模版建立文件夹
  3. DPDK — 安装部署(CentOS 7)
  4. GPU — Overview
  5. Python 进阶_OOP 面向对象编程_self 的实例绑定
  6. 互联网协议 — FTP 文件传输协议
  7. 编程进阶,学会使用_I、_O、_IO,以及volatile const的意义
  8. ARM 命名规则、架构
  9. oracle空间管理
  10. [Silverlight入门系列]实现局部元素全屏(Element部分全屏)