重学容器12: 使用buildkit实现容器镜像的远程构建 2021年6月10日 本节做一个实战的练习,使用buildkit完成容器镜像的远程构建,即实现本地的buildctl客户端远程请求服务器上的buildkitd完成一个容器镜像的构建并推送到镜像仓库中。 部署buildkitd服务端, 暴露为TCP服务 下面将在服务器上…… 阅读全文
重学容器11: 容器镜像构建工具和方案介绍 2021年6月9日 本节一起看一下都有哪些可用于构建容器镜像的工具和方案。可能你会疑问,构建镜像不就是使用docker build就可以吗,即使将来docker真的退出历史舞台,不还有containerd吗,前面第5节的时候也介绍了在containerd下可以使…… 阅读全文
重学容器10: 容器仅仅是一种特殊的进程 2021年6月3日 前面学习了容器运行时containerd的基本使用,containerd的架构,namespace, cgroup, rootfs等容器背后的技术。 本节做一个阶段性的小节。此时,如果有人问"容器是什么?",我们可能会给出以下的回答: 容器…… 阅读全文
重学容器09: Containerd是如何存储容器镜像和数据的 2021年6月2日 前面我们简单理解了Containerd的架构,本节来看一下Containerd是如何存储镜像和容器的,涉及到内容包括如何镜像存储和RootFS。 从pull镜像到启动容器 Containerd的配置文件中有如下两项配置: 1root = /var/lib/containerd 2state = "/run/containerd" root配置…… 阅读全文
重学容器08: 简单理解Containerd的架构 2021年5月23日 前面我们从实际操作角度学习了containerd,部署了containerd,并学习使用了ctr, crictl, nerdctl等命令行工具,体验了容器镜像的构建、拉取、推送,容器的启动和管理,并结合containerd容器学习了容器隔离性和资源限制背后…… 阅读全文
重学容器07: 容器隔离性背后的技术namespace 2021年5月10日 本节我们一起来了解一下容器资源隔离性技术namespace。 namespace即命名空间,主要用来做访问隔离,针对一类资源进行抽象封装给一个容器使用,对于这类资源,每个容器都有自己的抽象,它们之间彼此不可见实现了访问隔离,例如PID name…… 阅读全文
重学容器06: 容器资源限制背后的技术cgroups 2021年5月9日 本节我们一起来了解一下容器的资源限制技术CGroups。CGroups即Linux Control Group其作用是限制一组进程可以使用的资源上限(CPU、内存等)。 1.CGroups的基本概念 学习CGroup需要先了解几个CGroup的基本概念: Task: 在c…… 阅读全文
重学容器05: 使用nerdctl + buildkitd构建容器镜像 2021年5月7日 1.容器核心技术和Docker的创新:镜像技术 容器技术主要包括Cgroup和Namesapce这两个内核级别的特性。 Cgroup是control group的缩写即控制组,主要用来做资源控制,可以将一组进程放到一个控制组里,通过给这个控制组分…… 阅读全文
重学容器04: containerd的高阶命令行工具nerdctl 2021年5月6日 对于用惯了docker cli的用户来说,containerd的命令行工具ctr使用起来不是很顺手,此时别慌,还有另外一个命令行工具项目nerdctl可供我们选择。 nerdctl是一个与docker cli风格兼容的containerd的cli…… 阅读全文
重学容器03: 使用CNI为Containerd容器添加网络能力 2021年4月28日 在第2节中,我们部署了containerd,配置好了ctr和crictl这两个命令行工具,并且使用ctr启动了一个用于测试的redis容器,但是这个容器还不具备网络能力,只能在容器内部自己玩耍。 本节我们将尝试手工配置containerd与c…… 阅读全文