在WSL 2的Linux发行版中安装NVIDIA Container Toolkit
时间: 2025-07-11 20:16:37 浏览: 15
<think>我们参考了用户提供的引用内容,特别是引用[2]中提到的NVIDIA官方建议:在WSL 2下安装CUDA时,应该使用Linux包管理器安装,而不是直接安装CUDA Toolkit(因为CUDA Toolkit附带了Linux GPU驱动程序,而WSL 2使用的是Windows主机的NVIDIA驱动)。因此,安装NVIDIA Container Toolkit也需要遵循特定的步骤。
根据NVIDIA官方文档,在WSL 2的Linux发行版中安装NVIDIA Container Toolkit的步骤如下:
### 步骤1: 确保系统满足要求
- 已安装WSL 2,并有一个Linux发行版(如Ubuntu)。
- Windows主机已安装支持WSL 2的NVIDIA显卡驱动(版本465或更高)。
- 在Linux发行版中,确保已安装`curl`和`apt-transport-https`等工具。
### 步骤2: 设置包仓库和GPG密钥
1. 添加NVIDIA Container Toolkit的仓库:
```bash
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
```
### 步骤3: 安装NVIDIA Container Toolkit
```bash
sudo apt-get install -y nvidia-container-toolkit
```
### 步骤4: 配置Docker使用NVIDIA运行时
1. 配置Docker守护进程以使用NVIDIA运行时:
```bash
sudo nvidia-ctk runtime configure --runtime=docker
```
此命令会修改`/etc/docker/daemon.json`文件,添加NVIDIA运行时。
2. 重启Docker服务:
```bash
sudo service docker restart
```
### 步骤5: 验证安装
运行一个测试容器,检查GPU是否可用:
```bash
docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.4.0-base nvidia-smi
```
如果安装成功,你应该会看到与主机上运行`nvidia-smi`类似的输出。
### 注意事项
- 如果之前安装过`nvidia-docker2`,请先卸载以避免冲突。
- 确保WSL 2的Linux发行版中已经安装了Docker引擎(如果使用Docker Desktop,则通常已经通过WSL集成,无需在Linux内单独安装Docker引擎)。
### 常见问题
1. **权限问题**:如果遇到权限错误,确保当前用户属于`docker`用户组。
2. **无法找到nvidia-smi**:确保Windows主机驱动已正确安装,并且在Windows中运行`nvidia-smi.exe`可以正常输出。
通过以上步骤,你应该能够在WSL 2的Linux发行版中成功安装NVIDIA Container Toolkit,并运行使用GPU的Docker容器。
§§相关问题§§
1. 如何在 WSL 2 中配置 Docker 以使用 NVIDIA 容器运行时?
2. 如何验证 NVIDIA Container Toolkit 在 WSL 2 中的安装是否成功?
3. 在 WSL 2 中运行 GPU 容器时遇到权限错误如何解决?
4. 如何更新 WSL 2 中的 NVIDIA Container Toolkit?
5. 为什么在 WSL 2 中运行 `nvidia-smi` 命令没有显示 GPU 信息?</think>在 WSL 2 的 Linux 发行版中安装 NVIDIA Container Toolkit 的完整步骤如下:
### 前提条件
1. Windows 10/11 已启用 WSL 2(参考[安装教程][^1])
2. Linux 发行版(如 Ubuntu 20.04+)已在 WSL 2 中运行
3. Windows 主机已安装支持 WSL 2 的 NVIDIA 驱动(版本 ≥ 465.00)
### 安装步骤
#### 1. 更新系统包
```bash
sudo apt-get update && sudo apt-get upgrade -y
```
#### 2. 安装依赖项
```bash
sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release
```
#### 3. 添加 NVIDIA 容器工具包仓库
```bash
# 添加 NVIDIA 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
```
#### 4. 安装 NVIDIA Container Toolkit
```bash
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
```
#### 5. 配置 Docker 使用 NVIDIA 运行时
```bash
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker # 如果使用 systemd
```
#### 6. 验证安装
```bash
# 运行测试容器
docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.4.0-base nvidia-smi
```
成功输出应显示 GPU 信息:
```
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.104.05 Driver Version: 535.104.05 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
```
### 配置说明
1. **WSL 2 特定设置**:
在 WSL 2 中,NVIDIA 驱动由 Windows 主机提供,Linux 端只需容器工具包[^2]
2. **运行时选择**:
使用 `--runtime=nvidia` 参数调用 GPU 容器,或设置默认运行时:
```json
// /etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
```
### 故障排除
- **GPU 未识别**:
在 Windows 终端运行 `nvidia-smi.exe` 验证主机驱动
- **权限问题**:
将用户加入 docker 组:
```bash
sudo usermod -aG docker $USER
newgrp docker # 应用组变更
```
- **CUDA 版本兼容**:
使用匹配的 CUDA 基础镜像(如 `nvidia/cuda:11.4.0-base`)
> 提示:WSL 2 中不需要单独安装 CUDA Toolkit,容器会自动使用主机驱动[^2]
阅读全文
相关推荐

















