告别nvidia-docker:迁移到NVIDIA Container Toolkit完全指南

告别nvidia-docker:迁移到NVIDIA Container Toolkit完全指南

【免费下载链接】nvidia-docker Build and run Docker containers leveraging NVIDIA GPUs 【免费下载链接】nvidia-docker 项目地址: https://gitcode.com/gh_mirrors/nv/nvidia-docker

还在为nvidia-docker命令失效而烦恼?项目仓库突然归档让你的GPU容器工作流中断?本文将帮助你无缝迁移到官方推荐的NVIDIA Container Toolkit,5分钟恢复GPU加速能力,并掌握最新工具的核心使用技巧。

读完本文你将获得:

  • 了解nvidia-docker项目归档的具体原因
  • 掌握Container Toolkit的安装配置步骤
  • 学会将现有nvidia-docker命令转换为新标准格式
  • 获取常见问题的快速解决方案

为什么nvidia-docker被归档?

2022年,NVIDIA正式宣布将nvidia-docker项目归档(Archived),并推荐所有用户迁移到NVIDIA Container Toolkit。这一决定基于以下技术演进:

mermaid

README.md中可以看到,原nvidia-docker包装器(wrapper)已不再受支持,其功能已被整合到NVIDIA Container Toolkit中,该工具包允许用户直接配置Docker使用NVIDIA容器运行时。

迁移准备:系统要求检查

在开始迁移前,请确认你的系统满足以下要求:

组件最低版本推荐版本
Docker19.0320.10+
NVIDIA驱动418.81.07510.xx+
操作系统Ubuntu 18.04, CentOS 7Ubuntu 20.04, CentOS 8

可以通过以下命令检查当前Docker版本:

docker --version

检查NVIDIA驱动版本:

nvidia-smi

安装NVIDIA Container Toolkit

Ubuntu系统安装步骤

  1. 设置NVIDIA仓库:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
  1. 安装容器工具包:
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
  1. 重启Docker服务:
sudo systemctl restart docker

CentOS系统安装步骤

  1. 设置仓库:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
  1. 安装工具包:
sudo yum clean expire-cache && sudo yum install -y nvidia-container-toolkit
  1. 重启Docker:
sudo systemctl restart docker

命令转换:从nvidia-docker到新标准

原nvidia-docker命令新Docker命令
nvidia-docker run ...docker run --gpus all ...
nvidia-docker run --runtime=nvidia ...docker run --gpus all ...
nvidia-docker-compose updocker-compose up (需配置运行时)

例如,原命令:

nvidia-docker run -it --rm nvidia/cuda:11.0-base nvidia-smi

应转换为:

docker run --gpus all -it --rm nvidia/cuda:11.0-base nvidia-smi

高级GPU选择

指定特定GPU运行容器:

docker run --gpus "device=0,1" -it --rm nvidia/cuda:11.0-base nvidia-smi

限制GPU内存使用:

docker run --gpus all --env NVIDIA_VISIBLE_DEVICES=all --env NVIDIA_MEMORY_LIMIT=4G nvidia/cuda:11.0-base

常见问题解决方案

问题1:Docker启动时提示找不到nvidia运行时

解决方案:检查/etc/docker/daemon.json文件是否包含以下内容:

{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

如文件不存在或内容不正确,可通过以下命令重新配置:

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

问题2:容器内无法识别GPU设备

排查步骤

  1. 确认宿主机nvidia-smi可正常输出
  2. 检查Docker服务是否重启:sudo systemctl status docker
  3. 查看容器启动日志:docker logs <container_id>

commit_logs.txt的历史记录可以看到,类似问题通常与Docker配置或NVIDIA驱动版本有关,建议保持驱动版本在450.xx以上。

问题3:docker-compose使用GPU

在docker-compose.yml中添加运行时配置:

version: '3.8'
services:
  gpu-app:
    image: nvidia/cuda:11.0-base
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

总结与最佳实践

迁移到NVIDIA Container Toolkit后,建议:

  1. 定期更新工具包:sudo apt-get upgrade nvidia-container-toolkit
  2. 监控官方文档documentation的更新
  3. 使用nvidia-ctk工具检查系统配置:nvidia-ctk system check
  4. 关注commit_logs.txt中的最新变更记录

通过本文介绍的步骤,你应该已经成功将GPU容器工作流迁移到NVIDIA Container Toolkit。这项技术升级不仅解决了nvidia-docker被归档的问题,还提供了更灵活的GPU资源管理能力和更好的Docker兼容性。

如果在迁移过程中遇到其他问题,可参考NVIDIA Container Toolkit的install guide或在官方仓库提交issue获取支持。

提示:收藏本文以备将来迁移新系统时参考,关注项目LICENSE变更以了解最新授权条款。

【免费下载链接】nvidia-docker Build and run Docker containers leveraging NVIDIA GPUs 【免费下载链接】nvidia-docker 项目地址: https://gitcode.com/gh_mirrors/nv/nvidia-docker

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值