概述
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 的基本概念、架构以及如何在您的系统中安装和使用它。