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 是一個強大且輕量級的容器運行時,適合需要高性能和定制化的場景。