下载:https://github.com/NVIDIA/libnvidia-container/blob/gh-pages/stable/deb/amd64/nvidia-container-toolkit_1.17.0-1_amd64.deb

# 检查文件类型,确保每个都是 Debian 包
file ~/nvidia-debs/*.deb

# 全部显示 "Debian binary package" 后再安装
sudo dpkg -i libnvidia-container1_1.17.4-1_amd64.deb
sudo dpkg -i libnvidia-container-tools_1.17.4-1_amd64.deb
sudo dpkg -i nvidia-container-toolkit-base_1.17.4-1_amd64.deb
sudo dpkg -i nvidia-container-toolkit_1.17.4-1_amd64.deb

# 修复依赖
sudo apt install -f

# 配置并验证
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi

1️⃣ 下载并查看原始列表文件内容

bash

复制

下载

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list

2️⃣ 使用 sed 修改内容(添加 signed-by 参数)

bash

复制

下载

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g'

3️⃣ 将修改后的内容写入配置文件

bash

复制

下载

sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

如果要将三个命令串联起来手动执行

你可以分三步执行:

第一步:下载并保存原始内容到临时文件

bash

复制

下载

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list -o /tmp/nvidia-container-toolkit.list

第二步:修改内容并保存到临时文件

bash

复制

下载

sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' /tmp/nvidia-container-toolkit.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

第三步:清理临时文件

bash

复制

下载

rm /tmp/nvidia-container-toolkit.list

在 Ubuntu 22.04 上安装 Docker Engine 的标准方法是使用 Docker 的官方 `apt` 仓库。这种方式能确保你获得最新且最安全的版本,也方便后续的升级维护。

以下是完整的安装步骤,请在你的终端中逐条执行。

### 📝 第一步:准备工作

在安装新版本前,建议先移除系统中可能存在的旧版 Docker 相关包。

1.  **更新软件包列表**:
    ```bash
    sudo apt update
    ```

2.  **安装必要的依赖**:
    这些软件包允许 `apt` 通过 HTTPS 使用仓库。
    ```bash
    sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
    ```

3.  **卸载可能冲突的旧包**:
    运行以下命令,移除旧版本的 Docker 或其他冲突的容器运行时。
    ```bash
    for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
    ```
    > `apt-get` 可能会提示其中某些软件包未安装,这是正常的。

### 🔑 第二步:添加 Docker 官方仓库

这一步会为系统添加 Docker 的官方 GPG 密钥和软件源。

1.  **添加 Docker 的官方 GPG 密钥**:
    ```bash
    # 创建存放密钥的目录(如果不存在)
    sudo install -m 0755 -d /etc/apt/keyrings

    # 下载并安装 GPG 密钥
    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
    ```

2.  **添加 Docker 仓库到 APT 源**:
    这个命令会自动检测你的 Ubuntu 版本(Jammy 22.04)并添加对应的仓库。

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") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    ```bash
    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
    ```

3.  **更新软件包索引**:
    更新 `apt` 软件包列表,使其包含新添加的 Docker 仓库中的软件包。
    ```bash
    sudo apt update
    ```
    > **注意**:如果你使用的是国内服务器,可能会遇到连接官方仓库速度慢的问题。可以考虑将 `https://download.docker.com/linux/ubuntu` 替换为国内镜像源(如阿里云 `http://mirrors.aliyun.com/docker-ce/linux/ubuntu`)。

### 🚀 第三步:安装 Docker Engine

现在可以正式安装 Docker 及其核心组件了。

1.  **安装最新版本的 Docker 及相关插件**:
    这条命令会安装 Docker Engine、命令行工具、容器运行时以及构建和编排插件。
    ```bash
    sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
    ```

2.  **验证安装是否成功**:
    运行 `hello-world` 镜像。如果安装正确,你会看到一条欢迎消息,并显示 "Hello from Docker!"。
    ```bash
    sudo docker run hello-world
    ```

3.  **查看 Docker 版本**:
    安装完成后,可以查看版本信息来确认。
    ```bash
    docker --version
    ```

### ⚙️ 第四步:后续配置(重要)

为了避免每次使用 Docker 命令时都要输入 `sudo`,可以将当前用户添加到 `docker` 用户组。

1.  **创建 `docker` 组**(通常安装时会自动创建,但执行一下无妨):
    ```bash
    sudo groupadd docker
    ```

2.  **将你的用户添加到 `docker` 组**:
    将 `$USER` 替换成你的用户名,或者直接使用下面的命令。

sudo usermod -aG docker $li
    ```bash
    sudo usermod -aG docker $USER
    ```

3.  **生效组更改**:
    你可以**注销并重新登录**,或者运行以下命令使更改立即生效:
    ```bash
    newgrp docker
    ```

4.  **测试是否无需 `sudo` 即可运行**:
    ```bash
    docker run hello-world
    ```

### 💡 可选:安装特定版本

如果你想安装特定版本的 Docker,而不是最新版,可以按以下步骤操作:

1.  **列出仓库中所有可用版本**:
    ```bash
    apt-cache madison docker-ce
    ```
    输出示例:
    ```
    docker-ce | 5:28.0.4-1~ubuntu.22.04~jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
    ...
    ```

2.  **安装指定版本**:
    将 `VERSION_STRING` 替换为你从上一步结果中看到的版本字符串。
    ```bash
    VERSION_STRING=5:28.0.4-1~ubuntu.22.04~jammy
    sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
    ```

至此,你已经成功在 Ubuntu 22.04 上安装了 Docker Engine。接下来,就可以开始拉取镜像、运行容器了。

在 Ubuntu 22.04 上安装 NVIDIA Container Toolkit 最标准的方法是使用 NVIDIA 官方提供的 APT 仓库。

请根据下面的步骤,在你的终端中逐条执行。

### 📋 第一步:准备工作

在开始安装之前,请确保你的系统已经满足以下两个必要条件。

1.  **检查 NVIDIA 驱动**
    运行以下命令,确认驱动已正确安装。你应该能看到类似下图的 GPU 信息列表。
    ```bash
    nvidia-smi
    ```
    > **如果提示 `command not found`**:说明 NVIDIA 驱动还未安装,需要先完成驱动的安装。

2.  **检查 Docker 是否已安装并运行**
    你已经按照之前的指引安装了 Docker,可以再次确认 Docker 服务正在运行。
    ```bash
    sudo systemctl status docker
    ```

### 🚀 第二步:安装 NVIDIA Container Toolkit

请按照以下顺序执行命令,添加 NVIDIA 的官方软件源并安装工具包。

1.  **添加 NVIDIA 软件源和 GPG 密钥**
    这组命令会下载 NVIDIA 的公钥,并配置 APT 仓库。
    ```bash
    # 下载并添加 GPG 密钥
    curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
    && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
    ```

2.  **更新软件包列表并安装**
    ```bash
    # 更新软件源缓存
    sudo apt-get update

    # 安装 NVIDIA Container Toolkit
    sudo apt-get install -y nvidia-container-toolkit
    ```

### ⚙️ 第三步:配置 Docker

安装完成后,需要让 Docker 的运行时知道可以使用 NVIDIA GPU。

1.  **配置 Docker 运行时**
    使用 `nvidia-ctk` 命令来自动完成 Docker 的配置。
    ```bash
    sudo nvidia-ctk runtime configure --runtime=docker
    ```

2.  **重启 Docker 服务**
    使刚才的配置生效。
    ```bash
    sudo systemctl restart docker
    ```

### ✅ 第四步:验证安装

最后一步,运行一个测试容器来确保一切正常。这个命令会尝试在容器内执行 `nvidia-smi`,如果成功,你会看到和第一步类似的 GPU 信息输出。

```bash
docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
```

如果看到 NVIDIA 驱动的版本信息,没有报错,就说明安装和配置都成功了。

### 💡 可能遇到的问题

1.  **`--gpus` 选项不可用**
    如果在执行验证命令时出现 `Unknown flag: --gpus` 错误,说明你安装的 Docker 版本可能过旧。可以通过安装 `docker-ce` 的最新版本来解决。

2.  **权限被拒绝**
    如果验证命令报错 `permission denied`,可以尝试在命令前加 `sudo` 运行,或者参考之前的指南,将你的用户添加到 `docker` 组中。

3.  **国内网络问题**
    如果添加软件源或安装时遇到网络问题,可以将 `nvidia.github.io` 替换为腾讯云等国内镜像源。

完成以上所有步骤后,你就可以正常使用需要 GPU 加速的 Docker 容器了。

更多推荐