containerd 中的文章

重学容器12: 使用buildkit实现容器镜像的远程构建

本节做一个实战的练习,使用buildkit完成容器镜像的远程构建,即实现本地的buildctl客户端远程请求服务器上的buildkitd完成一个容器镜像的构建并推送到镜像仓库中。 部署buildkitd服务端, 暴露为TCP服务 下面将在服务器上……

阅读全文

重学容器11: 容器镜像构建工具和方案介绍

本节一起看一下都有哪些可用于构建容器镜像的工具和方案。可能你会疑问,构建镜像不就是使用docker build就可以吗,即使将来docker真的退出历史舞台,不还有containerd吗,前面第5节的时候也介绍了在containerd下可以使……

阅读全文

重学容器10: 容器仅仅是一种特殊的进程

前面学习了容器运行时containerd的基本使用,containerd的架构,namespace, cgroup, rootfs等容器背后的技术。 本节做一个阶段性的小节。此时,如果有人问"容器是什么?",我们可能会给出以下的回答: 容器……

阅读全文

重学容器09: Containerd是如何存储容器镜像和数据的

前面我们简单理解了Containerd的架构,本节来看一下Containerd是如何存储镜像和容器的,涉及到内容包括如何镜像存储和RootFS。 从pull镜像到启动容器 Containerd的配置文件中有如下两项配置: 1root = /var/lib/containerd 2state = "/run/containerd" root配置……

阅读全文

重学容器08: 简单理解Containerd的架构

前面我们从实际操作角度学习了containerd,部署了containerd,并学习使用了ctr, crictl, nerdctl等命令行工具,体验了容器镜像的构建、拉取、推送,容器的启动和管理,并结合containerd容器学习了容器隔离性和资源限制背后……

阅读全文

重学容器07: 容器隔离性背后的技术namespace

本节我们一起来了解一下容器资源隔离性技术namespace。 namespace即命名空间,主要用来做访问隔离,针对一类资源进行抽象封装给一个容器使用,对于这类资源,每个容器都有自己的抽象,它们之间彼此不可见实现了访问隔离,例如PID name……

阅读全文

重学容器06: 容器资源限制背后的技术cgroups

本节我们一起来了解一下容器的资源限制技术CGroups。CGroups即Linux Control Group其作用是限制一组进程可以使用的资源上限(CPU、内存等)。 1.CGroups的基本概念 学习CGroup需要先了解几个CGroup的基本概念: Task: 在c……

阅读全文

重学容器05: 使用nerdctl + buildkitd构建容器镜像

1.容器核心技术和Docker的创新:镜像技术 容器技术主要包括Cgroup和Namesapce这两个内核级别的特性。 Cgroup是control group的缩写即控制组,主要用来做资源控制,可以将一组进程放到一个控制组里,通过给这个控制组分……

阅读全文

重学容器03: 使用CNI为Containerd容器添加网络能力

在第2节中,我们部署了containerd,配置好了ctr和crictl这两个命令行工具,并且使用ctr启动了一个用于测试的redis容器,但是这个容器还不具备网络能力,只能在容器内部自己玩耍。 本节我们将尝试手工配置containerd与c……

阅读全文