Containerd 简介、安装与使用指南
1. Containerd 简介
Containerd 是一个开源的容器运行时,专注于管理容器的生命周期。它最初是 Docker 的一部分,后来被分离出来成为一个独立的项目,并成为 Kubernetes 和其他容器平台的底层运行时。Containerd 提供了容器的创建、启动、停止、删除等核心功能,同时支持镜像的拉取和管理。
Containerd 的设计目标是轻量、高效且易于集成,它通过标准的 CRI(Container Runtime Interface)与 Kubernetes 等编排工具无缝对接。相比于 Docker,Containerd 更加专注于核心功能,适合需要更高定制化的场景。
2. Containerd 安装教程
2.1 环境准备
-
操作系统:Linux(推荐 Ubuntu 20.04 或 CentOS 7/8)
-
内核版本:4.x 或更高
-
用户权限:root 或具有 sudo 权限的用户
2.2 安装 Containerd
2.2.1 使用包管理器安装(推荐)
Ubuntu/Debian:
-
更新软件包列表:
sudo apt-get update
-
安装依赖:
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
-
添加 Docker 官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
-
添加 Docker 仓库:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.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
CentOS/RHEL:
-
安装依赖:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
-
添加 Docker 仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
安装 Containerd:
sudo yum install -y containerd.io
2.2.2 手动安装(适用于高级用户)
-
下载 Containerd 二进制文件:
wget https://github.com/containerd/containerd/releases/download/v1.6.0/containerd-1.6.0-linux-amd64.tar.gz
-
解压文件:
tar -C /usr/local -xzf containerd-1.6.0-linux-amd64.tar.gz
-
创建 systemd 服务文件:
sudo vi /etc/systemd/system/containerd.service
内容如下:
[Unit] Description=containerd container runtime Documentation=https://containerd.io After=network.target [Service] ExecStart=/usr/local/bin/containerd Restart=always RestartSec=5 Delegate=yes KillMode=process [Install] WantedBy=multi-user.target
-
启动并启用 Containerd:
sudo systemctl daemon-reload
sudo systemctl enable --now containerd
3. Containerd 使用方法
3.1 配置 Containerd
Containerd 的配置文件通常位于 /etc/containerd/config.toml
。您可以根据需要修改配置文件,例如调整日志级别、存储路径等。
生成默认配置文件:
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
重启 Containerd 以应用配置:
sudo systemctl restart containerd
3.2 使用 Containerd 管理容器
3.2.1 拉取镜像
使用 ctr
命令拉取镜像:
sudo ctr images pull docker.io/library/nginx:latest
3.2.2 运行容器
运行一个容器:
sudo ctr run -d --rm docker.io/library/nginx:latest nginx-container
3.2.3 查看容器
列出所有容器:
sudo ctr containers list
3.2.4 停止容器
停止容器:
sudo ctr tasks kill nginx-container
3.2.5 删除容器
删除容器:
sudo ctr containers delete nginx-container
3.3 使用 nerdctl
增强 Containerd 功能
nerdctl
是一个兼容 Docker CLI 的工具,专为 Containerd 设计,提供了更友好的用户体验。
-
安装
nerdctl
:wget https://github.com/containerd/nerdctl/releases/download/v0.20.0/nerdctl-0.20.0-linux-amd64.tar.gz
tar -C /usr/local/bin -xzf nerdctl-0.20.0-linux-amd64.tar.gz
-
使用
nerdctl
管理容器:sudo nerdctl run -d --name nginx-container nginx:latest
sudo nerdctl ps
4. 总结
Containerd 是一个强大且轻量级的容器运行时,适合需要高性能和定制化的场景。