「CONTAINERD」- 服务部署

on Ubuntu 24.04 TLS with APT

# 04/09/2025

https://github.com/containerd/containerd/blob/main/docs/getting-started.mdhttps://docs.docker.com/engine/install/ubuntu/

安装过程大致如下,细节请参考官方文档:

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

sudo apt-get install containerd.io

sudo apt-mark hold containerd.io

containerd.io 1.5.11-1 (from Docker)

注意,该方式是通过 Docker 官方仓库提供的 contanerd.io 包进行部署,注意与 containerd 包进行区别。

安装 containerd 服务:

# 我们使用 Docker 仓库里的 containerd 程序

apt-get update                                                                 \
    && apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common \
    && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - \
    && apt-key fingerprint 0EBFCD88                                            \
    && add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 安装服务,避免意外升级
apt-get install -y containerd.io=1.5.11-1 --allow-downgrades                   \
    && apt-mark hold containerd.io

# apt-file list containerd.io
containerd.io: /etc/containerd/config.toml
containerd.io: /lib/systemd/system/containerd.service
containerd.io: /usr/bin/containerd
containerd.io: /usr/bin/containerd-shim
containerd.io: /usr/bin/containerd-shim-runc-v1
containerd.io: /usr/bin/containerd-shim-runc-v2
containerd.io: /usr/bin/ctr
containerd.io: /usr/bin/runc
containerd.io: /usr/share/doc/...
containerd.io: /usr/share/man/...

containered v1.6.12

# apt-cache madison containerd
containerd | 1.6.12-0ubuntu1~20.04.1 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
containerd | 1.5.9-0ubuntu1~20.04.6 | http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
containerd | 1.3.3-0ubuntu2 | http://archive.ubuntu.com/ubuntu focal/main amd64 Packages

# apt-get install containerd=1.6.12-0ubuntu1~20.04.1
...

# apt-get install containerd=1.7.2-0ubuntu1~20.04.1
...

on CentOS 7.x

根据 containerd/docs/getting-started.md at main 文档,在 CentOS 中,参考 Install Docker Engine on CentOS 文档,来完成部署。

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install containerd.io

containerd.io 1.6.2

根据官方文档的指引,我们来进行 containerd.io 的安装。
1)containerd/docs/getting-started.md at main/Option 2: From apt-get or dnf
2)Install Docker Engine on Ubuntu | Docker Docs

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc
do 
    sudo apt-get remove -y $pkg
done

apt-get update
apt-get install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
rm -rf /etc/apt/keyrings/docker.gpg
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" |   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update

apt-get install -y containerd.io=1.6.26-1 # on Ubuntu 20.04.5 LTS
systemctl restart containerd.service 

参考文献

containerd – An industry-standard container runtime with an emphasis on simplicity, robustness and portability