安装docker和显卡支持
下载:https://github.com/NVIDIA/libnvidia-container/blob/gh-pages/stable/deb/amd64/nvidia-container-toolkit_1.17.0-1_amd64.deb
在 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 容器了。
