Docker GPU插件(NVIDIA Container Toolkit)安装

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

  1. 系统更新与依赖安装

    先确保系统包索引最新,避免安装冲突:

bash 复制代码
sudo apt-get update && sudo apt-get upgrade -y

sudo apt-get install -y ca-certificates curl gnupg lsb-release  # 必备依赖
  1. 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 专属注意事项

  1. 源路径正确性

    Ubuntu 22.04 的源路径必须是ubuntu22.04(对应 jammy),若误使用ubuntu20.04(focal)会导致依赖冲突,安装失败。

  2. Docker 版本兼容

    Ubuntu 22.04 默认软件源的 Docker 版本可能较低(如 20.10.12),建议通过 Docker 官方脚本安装最新稳定版,避免--gpus参数不支持。

  3. 驱动与 CUDA 版本匹配

    Ubuntu 22.04 推荐安装 NVIDIA 驱动 515.43.04+,对应的 CUDA 版本建议 11.7+,可通过以下命令安装兼容驱动:

bash 复制代码
# 安装Ubuntu 22.04推荐的NVIDIA驱动

sudo ubuntu-drivers autoinstall

sudo reboot  # 重启生效
  1. 非 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 专属)

  1. 安装时提示 "依赖未满足"

    原因:源路径错误或系统未更新。解决方案:

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
  1. 容器内提示 "CUDA driver version is insufficient for CUDA runtime version"

    原因:宿主机驱动版本低于镜像要求。解决方案:

  • 安装更高版本驱动:sudo ubuntu-drivers autoinstall

  • 更换低版本 CUDA 镜像,如nvidia/cuda:11.7.0-base-ubuntu22.04

  1. 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容器创建

相关推荐
Serverless社区15 小时前
探秘 AgentRun|基于 Serverless 的 AI Agent 沙箱工程化之路
运维·阿里云·云原生·serverless·函数计算
475.3516 小时前
linux-journal日志清理
linux·运维·服务器
Black__Jacket16 小时前
Ubuntu下,/dev下,无法读取到CH340串口芯片的端口号
linux·运维·ubuntu
小王不爱笑13216 小时前
云服务器部署 JavaWeb 项目
运维·服务器
清泉影月16 小时前
Linux:Squid正向代理实现内网访问互联网
linux·运维·服务器
霖霖总总17 小时前
[小技巧39]Linux 文件与命令查找工具(which、whereis、locate、find)全面解析
linux·运维
ayaya_mana17 小时前
在 CentOS 7/RHEL 7 上安装并切换至新版内核
linux·运维·centos
三不原则17 小时前
故障案例:数据库慢查询导致交易延迟,AIOps 如何自动定位?
运维·数据库
gzxx2007sddx17 小时前
ubuntu挂载访问windows的共享文件夹
linux·运维·ubuntu·挂载·共享
市安17 小时前
基于 LVS+Keepalived+NFS 的高可用 Web 集群构建与验证
运维·服务器·网络·lvs·keepalived·ipvsadm