#!/bin/bash VERSION="2.0.0" FILENAME="nerdctl-full-${VERSION}-linux-amd64.tar.gz" # https://github.com/containerd/nerdctl/releases/download/v2.0.0/nerdctl-full-2.0.0-linux-amd64.tar.gz DOWNLOAD_URL="https://ghproxy.dockless.eu.org/https://github.com/containerd/nerdctl/releases/download/v${VERSION}/${FILENAME}" install_nerdctl() { echo "正在安装必要的依赖包..." # 删除 Docker 源 if [ -f /etc/apt/sources.list.d/docker.list ]; then echo "删除 Docker APT 源..." sudo rm /etc/apt/sources.list.d/docker.list fi sudo apt-get update sudo apt-get install -y wget tar jq curl gnupg lsb-release uidmap echo "下载 nerdctl-full..." wget ${DOWNLOAD_URL} echo "解压并移动到 /usr/local..." sudo tar -C /usr/local -xzf ${FILENAME} echo "启动并启用 containerd 服务..." sudo systemctl enable --now containerd echo "验证安装..." nerdctl --version # echo "清理下载文件..." # rm ${FILENAME} echo "安装 nerdctl bash 自动补全..." sudo apt install bash-completion -y nerdctl completion bash > /etc/bash_completion.d/nerdctl nerdctl completion bash > /etc/bash_completion.d/docker source /etc/bash_completion.d/nerdctl source /etc/bash_completion.d/docker echo "创建 docker 兼容命令..." sudo tee /usr/local/bin/docker > /dev/null < /etc/containerd/config.toml containerd config default | sudo tee /etc/containerd/config.toml # 使用 sed 命令在特定位置添加配置项 sudo sed -i '/\[plugins."io.containerd.grpc.v1.cri".registry.configs\]/a \\t[plugins."io.containerd.grpc.v1.cri".registry.configs."docker.io".tls]\n\t\tinsecure_skip_verify = true' /etc/containerd/config.toml # 配置 NVIDIA runtime sudo nvidia-ctk runtime configure --runtime=containerd # 重启 containerd 服务 sudo systemctl restart containerd } start_containerd() { echo "正在启动 containerd..." sudo systemctl enable --now containerd if [ $? -ne 0 ]; then echo "启动 containerd 失败。" exit 1 fi echo "containerd 启动成功。" } configure_buildkitd() { echo "配置 buildkitd 服务..." # 创建 buildkitd 配置文件目录 sudo mkdir -p /etc/buildkit # https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md sudo tee /etc/buildkit/buildkit.toml > /dev/null < /dev/null < /dev/null <