掌握containerd:Docker背后的轻量级容器运行时指南

概述
containerd 是一个轻量级的容器运行时,它是 Docker 的核心组件之一,但与 Docker Engine 相比,它更加灵活和可扩展。本文将深入探讨 containerd 的概念、架构、安装配置以及如何在容器化环境中使用它。
containerd 简介
containerd 是由 Docker 公司开发的开源项目,自 Docker 1.11 版本开始,containerd 便成为 Docker 的默认容器运行时。它提供了一种高效、灵活的容器运行时解决方案,支持多种容器镜像格式,如 Docker 镜像和 AppC 镜像。
containerd 架构
containerd 的架构设计简洁,主要由以下几个组件组成:
containerd-shim
:容器启动时与 containerd 通信的代理,负责管理容器的生命周期。
runtime
:负责容器的运行时,例如 runc 和 runV2。
containerd
:容器运行时的核心,负责管理容器的存储、镜像、网络等功能。
CRIO
(容器运行时接口):一个容器运行时接口,使得容器运行时之间可以互相通信。
安装 containerd
在 Linux 上安装 containerd
以下是在 Linux 系统上安装 containerd 的步骤:
添加 containerd 仓库
:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
添加 GPG 密钥
:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg
创建仓库文件
:
sudo echo “deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 containerd
:
sudo apt-get update
sudo apt-get install -y containerd.io
配置 containerd
:
编辑
/etc/containerd/config.toml
文件,确保以下配置:
[plugins]
[plugins.cri]
[plugins.cri.containerd]
[plugins.cri.containerd.runtimes.runc]
[plugins.cri.containerd.runtimes.runc.options]
[plugins.cri.containerd.runtimes.runc.options.log]
type = “json-file”
max-size = “10m”
max-file = “3”
重启并使能 containerd 服务
:
sudo systemctl restart containerd
sudo systemctl enable containerd
在 Windows 上安装 containerd
下载 containerd.exe
:从
containerd 的 GitHub 仓库
下载最新版本的 containerd.exe。
将 containerd.exe 添加到 PATH
:将 containerd.exe 的路径添加到系统环境变量 PATH 中。
使用 containerd
运行容器
以下是一个使用 containerd 运行容器的示例:
ctr run –rm –name my-container –image nginx nginx
查看容器
使用以下命令查看正在运行的容器:
ctr ps
停止和删除容器
停止并删除容器:
ctr stop my-container
ctr rm my-container
总结
containerd 是一个功能强大且灵活的容器运行时,它为容器化环境提供了高效的运行时解决方案。通过本文的介绍,您应该能够了解 containerd 的基本概念、架构以及如何在您的系统中安装和使用它。