containerd离线安装

Containerd 2.1.4 二进制离线安装指南

准备离线安装包

1. 在有网络的机器上下载二进制文件

bash 复制代码
# 创建工作目录
mkdir -p /tmp/containerd-binary-offline
cd /tmp/containerd-binary-offline

# 下载containerd 2.1.4二进制包
wget https://github.com/containerd/containerd/releases/download/v2.1.4/containerd-2.1.4-linux-amd64.tar.gz

# 下载runc 1.2.5二进制文件
wget https://github.com/opencontainers/runc/releases/download/v1.2.5/runc.amd64

# 下载CNI插件
wget https://github.com/containernetworking/plugins/releases/download/v1.5.1/cni-plugins-linux-amd64-v1.5.1.tgz

# 验证下载
ls -la

目标机器安装步骤

1.. 解压安装包

bash 复制代码
cd /tmp
tar -xzf containerd-binary-offline-package.tar.gz

2.. 安装 containerd 二进制文件

bash 复制代码
# 解压containerd到/usr/local
sudo tar -C /usr/local -xzf containerd-2.1.4-linux-amd64.tar.gz

# 验证安装
/usr/local/bin/containerd --version

3. 安装 runc

bash 复制代码
# 安装runc到/usr/local/sbin
sudo install -m 755 runc.amd64 /usr/local/sbin/runc

# 验证安装
/usr/local/sbin/runc --version

4. 安装 CNI 插件

bash 复制代码
# 创建CNI目录
sudo mkdir -p /opt/cni/bin

# 解压CNI插件
sudo tar -C /opt/cni/bin -xzf cni-plugins-linux-amd64-v1.5.1.tgz

# 设置权限
sudo chmod +x /opt/cni/bin/*

6. 配置 containerd

bash 复制代码
# 创建配置目录
sudo mkdir -p /etc/containerd

# 生成默认配置
sudo /usr/local/bin/containerd config default | sudo tee /etc/containerd/config.toml

# 创建systemd服务文件
sudo mkdir -p /usr/local/lib/systemd/system
sudo tee /usr/local/lib/systemd/system/containerd.service > /dev/null <<EOF
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/containerd
Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity
TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target
EOF

# 重新加载systemd并启用服务
sudo systemctl daemon-reload
sudo systemctl enable containerd

7. 启动服务

bash 复制代码
# 启动containerd
sudo systemctl start containerd
sudo systemctl status containerd

8. 验证安装

bash 复制代码
# 验证containerd版本
containerd --version
sudo ctr version

# 验证runc版本
runc --version

# 测试containerd功能
sudo ctr images pull docker.io/library/hello-world:latest
sudo ctr run --rm docker.io/library/hello-world:latest hello-test

# 如果有Docker,测试Docker功能
if command -v docker &> /dev/null; then
    sudo docker run --rm hello-world
fi

卸载

bash 复制代码
# 停止服务
sudo systemctl stop containerd docker
sudo systemctl disable containerd

# 删除文件
sudo rm -f /usr/local/bin/containerd*
sudo rm -f /usr/local/sbin/runc
sudo rm -rf /etc/containerd
sudo rm -f /usr/local/lib/systemd/system/containerd.service
sudo rm -rf /opt/cni

# 重新加载systemd
sudo systemctl daemon-reload

推荐使用二进制安装方式,除非你需要特定的编译选项或自定义功能。