一、Ubuntu 22.04 前置准备(主要版本要对应)

-
系统更新与依赖安装
先确保系统包索引最新,避免安装冲突:
bash
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y ca-certificates curl gnupg lsb-release # 必备依赖
-
Docker 环境验证
需提前安装 Docker 19.03+(Ubuntu 22.04 推荐 Docker 20.10+),验证安装:
bash
docker --version # 输出Docker版本,如20.10.21
sudo systemctl status docker # 确认Docker服务运行中
若未安装 Docker,先执行官方安装脚本
二、Ubuntu 22.04 专属:NVIDIA Container Toolkit 安装
1. 卸载旧版冲突组件
sudo apt-get purge -y nvidia-docker nvidia-container-runtime # 清除历史版本
sudo rm -rf /etc/apt/sources.list.d/nvidia-docker.list # 删除旧源
2. 添加 NVIDIA 官方源(适配 Ubuntu 22.04)
Ubuntu 22.04 对应jammy版本,需指定正确的源路径:
bash
# 导入GPG密钥(与Ubuntu 20.04通用,但需重新执行确保生效)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
# 添加Ubuntu 22.04(jammy)专属源
curl -s -L https://nvidia.github.io/libnvidia-container/ubuntu22.04/libnvidia-container.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
3. 安装并配置 Toolkit(关键插件)
bash
# 更新源并安装核心插件
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
# 生成Docker配置文件(自动关联GPU驱动)
sudo nvidia-ctk runtime configure --runtime=docker
# 重启Docker服务使配置生效
sudo systemctl restart docker
Docker配置文件

4. 验证插件安装成功
运行测试镜像,若正常输出 GPU 信息,则插件生效:
bash
sudo docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi
预期输出:包含宿主机 GPU 型号、CUDA 版本等信息(如 RTX 3090 + CUDA 12.2)。

5. 离线安装
离线包下载镜像地址:https://mirror.cs.uchicago.edu/nvidia-docker/libnvidia-container/stable/ubuntu20.04/amd64/
下载包如下:

三、Ubuntu 22.04 专属注意事项
-
源路径正确性
Ubuntu 22.04 的源路径必须是
ubuntu22.04(对应 jammy),若误使用ubuntu20.04(focal)会导致依赖冲突,安装失败。 -
Docker 版本兼容
Ubuntu 22.04 默认软件源的 Docker 版本可能较低(如 20.10.12),建议通过 Docker 官方脚本安装最新稳定版,避免
--gpus参数不支持。 -
驱动与 CUDA 版本匹配
Ubuntu 22.04 推荐安装 NVIDIA 驱动 515.43.04+,对应的 CUDA 版本建议 11.7+,可通过以下命令安装兼容驱动:
bash
# 安装Ubuntu 22.04推荐的NVIDIA驱动
sudo ubuntu-drivers autoinstall
sudo reboot # 重启生效
-
非 root 用户权限配置
若需免 sudo 使用 Docker GPU,除了添加
docker用户组,还需确保nvidia-container-toolkit权限正确:
bash
sudo chmod 666 /var/run/docker.sock # 临时授权(重启后失效)
# 永久授权:编辑Docker服务配置
sudo nano /etc/systemd/system/docker.service.d/override.conf
# 添加内容:ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H unix:///var/run/docker.sock
sudo systemctl daemon-reload && sudo systemctl restart docker
四、常见问题(Ubuntu 22.04 专属)
-
安装时提示 "依赖未满足"
原因:源路径错误或系统未更新。解决方案:
bash
sudo rm /etc/apt/sources.list.d/nvidia-container-toolkit.list # 删除错误源
# 重新执行"添加NVIDIA官方源"步骤(确保路径为ubuntu22.04)
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
-
容器内提示 "CUDA driver version is insufficient for CUDA runtime version"
原因:宿主机驱动版本低于镜像要求。解决方案:
-
安装更高版本驱动:
sudo ubuntu-drivers autoinstall -
更换低版本 CUDA 镜像,如
nvidia/cuda:11.7.0-base-ubuntu22.04
-
nvidia-ctk命令未找到原因:Toolkit 安装不完整。解决方案:
bash
sudo apt-get remove -y nvidia-container-toolkit
sudo apt-get autoremove -y
# 重新安装并清理缓存
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit --fix-missing
六 dockers容器创建
