[转帖]Docker、containerd的关系

docker,containerd,关系 · 浏览次数 : 0

小编点评

**docker 和 containerd 之间的关系** * Docker 是一个客户端工具,用来把用户的请求发送给docker daemon。 * containerd 是一个工业级别标准的容器运行时,它强调简单性、健壮性和可移植性。 * containerd 包括了所有容器运行时所需的一切功能,包括执行、分发、监控、网络、构建、日志等。 * containerd-shim 是一个真实运行容器的载体,用于支持多种OCI Runtime。 * containerd 使用 containerd-shim 来管理容器的生命周期、拉取/推送容器镜像、存储管理、调用runC运行容器等功能。

正文

Docker、containerd的关系

containerd囊括了单机运行一个容器时所需要的一切:
为了能够支持多种OCI Runtimecontainerd 内部使用containerd-shim,每启动一个容器都会创建一个新的containerd-shim进程,指定容器ID,Bundle目录,运行时的二进制(比如runc)

1、docker

docker本身而言,包括docker clientdockerd,是一个客户端工具,用来把用户的请求发送给docker daemon(dockerd)
dockerddockerd是对容器相关操作的最上层封装,直接面向操作用户。Docker daemon,一般也会被称为docker enginedockerd启动时会启动containerd 子进程。

2、containerd

containerd是一个工业级别标准的容器运行时,它强调简单性、健壮性和可移植性,几乎囊括了单机运行一个容器运行时所需要的一切:执行、分发、监控、网络、构建、日志等。主要作用是:

  • 1)、管理容器的生命周期(从创建容器到销毁容器)
  • 2)、拉取/推送容器镜像
  • 3)、存储管理(管理镜像及容器数据的存储)
  • 4)、调用runC运行容器(与runC等容器运行时交互)
  • 5)、管理容器网络接口及网络
    dockerd实际真实调用的还是containerd的api接口,containerddockerdrunC之间的一个中间交流组件。

3、containerd-shim

containerd-shim是一个真实运行容器的载体,为了能够支持多种OCI Runtimecontainerd内部使用containerd-shim,每启动一个容器都会起一个新的containerd-shim的进程。它通常指定三个因素:容器ID、bundle目录(对应某个容器生成的目录,一般位于:/var/run/docker/containerd/containerID)

4、runC

runC是一个轻量级的工具,用来运行容器的,我们可以不用通过docker引擎,直接运行容器。

总的来说docker镜像containerd镜像通用,但组织方式和存放目录不同,导致docker与ctr命令不通用,各自管理自己的镜像和容器。此外k8s还有客户端命令crictl,用法与docker基本相同,可crictl -h查看用法。

与[转帖]Docker、containerd的关系相似的内容:

[转帖]Docker、containerd的关系

Docker、containerd的关系 containerd囊括了单机运行一个容器时所需要的一切: 为了能够支持多种OCI Runtime,containerd 内部使用containerd-shim,每启动一个容器都会创建一个新的containerd-shim进程,指定容器ID,Bundle目录

[转帖]k8s学习-containerd命令行工具crictl使用

在最新k8s的版本中,containerdruntime已经不在使用docker,而是使用containerd了。​containerd是什么?containerd的自我介绍中说它是一个开放、可靠的容器运行时,实际上它包含了单机运行一个容器运行时的功能。 containerd为了支持多种OCI Ru

[转帖]nerdctl安装和使用

https://zhuanlan.zhihu.com/p/588208157 nerdctl是一个较新的containerd工具,兼容Docker命令行工具,比ctr覆盖更全面,另外还支持docker-compose(不包括swarm)以及一些可选的高级特性 安装nerdctl1.0.0 参考 ht

[转帖]nerdctl安装和使用

https://zhuanlan.zhihu.com/p/588208157 延伸阅读 nerdctl是一个较新的containerd工具,兼容Docker命令行工具,比ctr覆盖更全面,另外还支持docker-compose(不包括swarm)以及一些可选的高级特性 安装nerdctl1.0.0

[转帖]像使用 Docker 一样使用 Containerd

http://www.manongjc.com/detail/28-zztmioqxomwjmqy.html 本文章向大家介绍像使用 Docker 一样使用 Containerd,主要包括像使用 Docker 一样使用 Containerd使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的

[转帖]用buildkit和containerd构建镜像

https://zhuanlan.zhihu.com/p/366671300 最近因为K8s抛弃Docker了,所以就只装了个containerd,这样就需要一个单独的镜像构建工具了,就用了buildkit,这也是Docker公司扶持的,他们公司的人出来搞的开源工具,官网在 https://gith

[转帖]用buildkit和containerd构建镜像

https://zhuanlan.zhihu.com/p/366671300 最近因为K8s抛弃Docker了,所以就只装了个containerd,这样就需要一个单独的镜像构建工具了,就用了buildkit,这也是Docker公司扶持的,他们公司的人出来搞的开源工具,官网在 https://gith

[转帖]Docker容器日志查看与清理(亲测有效)

1. 问题 docker容器日志导致主机磁盘空间满了。docker logs -f container_name噼里啪啦一大堆,很占用空间,不用的日志可以清理掉了。 2. 解决方法 2.1 找出Docker容器日志 在linux上,容器日志一般存放在/var/lib/docker/container

【转帖】Docker容器四种网络模式

https://blog.whsir.com/post-5268.html docker自身默认提供了四种网络模式:none、bridge、container、host。除了这四种网络模式外,还可以通过插件自定义一些网络模式,比如macvlan、overlay等。 默认的这四种网络模式其实很好理解,

[转帖]如何使用Calico实现跨主机Docker网络通信

https://blog.csdn.net/sanhewuyang/article/details/122004156 写在前面 学习K8s,学到这里,整理记忆,本文用于理解K8s网络中Calico网路方案的原理优缺点内容包括:常见的容器跨主机通信方案简介Caliao实现Container跨主机通信