容器运行时:Docker与Containerd

简单的来说容器运行时就是一个工具,是用来运行和管理容器进程、镜像。普遍为大家所熟悉的就是containerd和docker。

docker底层其实也是通过containerd来调用runc构建容器,只不过他的docker客户端对用户操作比较友好,所以大家偏向使用dockers,docker构建镜像的运行逻辑如下

1.docker daemon请求到containerd

2.containerd收到请求后,创建一个containerd-shim的垫片进程

3.containerd-shim垫片经常调用runc创建容器,并接管容器上报状态到containerd

docker其实也是使用containerd来完成容器的创建,构建containerd-shim的进程本质是为了达到一个解耦的效果,如果直接由containerd来做为容器的父进程,会导致如果containerd挂了那这台宿主机所有容器都挂了的现象。containerd-shim作为容器的父进程来管理容器并且收集状态。runc主要完成建容器需要做一些 Namespaces 和 Cgroups 的配置,以及挂载 root 文件系统等操作

那么k8s中创建逻辑是怎么样的呢?

由于前期docker过于火热,以至于导致k8s不得已在内部创建了dockershim垫片来配合docker

由此比较可以看出,真正容器本质都是通过containerd来构建的,如果通过docker则调用连太长,对于k8s来说只要符合CRI,Container Runtime Interface(CRI) 接口规范的容器运行时就都兼容。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值