文档首页/ 弹性云服务器 ECS/ 最佳实践/ GPU实例最佳实践/ 部署NGC容器环境以构建深度学习开发环境
更新时间:2025-08-06 GMT+08:00

部署NGC容器环境以构建深度学习开发环境

应用场景

华为云支持使用Docker容器来部署深度学习框架,并且可以通过NVIDIA Docker来启动支持GPU加速的容器,您可以从NVIDIA NGC下载适合的容器镜像,并在华为云的GPU实例上运行。

本文以搭建TensorFlow深度学习框架为例,为您介绍如何在GPU实例上,使用容器化解决方案部署NGC容器环境以实现深度学习开发环境的预安装。

背景信息

NGC容器镜像(NVIDIA GPU Cloud 容器镜像)是NVIDIA提供的一系列优化过的Docker容器镜像。

  • 预配置环境:这些容器镜像内已集成了CUDA、cuDNN、深度学习框架及其他相关依赖,使用时无需进行繁琐的环境配置,直接拉取镜像运行即可。
  • GPU加速:这些镜像经过优化,能够充分利用NVIDIA GPU进行计算,尤其是在深度学习、大规模数据处理和高性能计算任务中,能够显著提升计算效率。
  • 优化设计:容器镜像针对特定的任务(如深度学习框架、AI 任务等)进行优化,保证了性能和兼容性。
  • 多种深度学习框架:NVIDIA提供了多个常用的深度学习框架的容器镜像,包括TensorFlow、PyTorch、MXNet、Caffe等,可以根据需求选择使用。

方案优势

  • 无需手动配置环境:容器镜像已经集成了CUDA、cuDNN、深度学习框架(如TensorFlow、PyTorch等),以及其他常见的工具库。
  • 轻松迁移:你可以将容器镜像在不同的云环境中运行,确保开发和生产环境的一致性。
  • 版本控制:NGC上有多个版本的容器镜像,你可以选择适合自己需求的版本(例如,不同的TensorFlow或PyTorch版本)。

部署NGC容器环境以构建深度学习开发环境

部署NGC容器环境以构建深度学习开发环境的操作步骤如下:

  1. 创建GPU实例
  2. 安装Docker
  3. 安装NVIDIA Docker
  4. 拉取NGC容器镜像
  5. 运行NGC容器
  6. 测试TensorFlow

实施步骤

  1. 创建GPU实例

    1. 登录控制台,进入购买弹性云服务器页面。
    2. 选择支持GPU加速型的实例(例如 Pi2、pi3、pi5 系列,支持NVIDIA Tesla T4 、A30、L2等GPU)。

      本文以创建pi2.2xlarge.4为例。

    3. 选择已经安装CUDA和NVIDIA驱动的镜像。

      本文以Ubuntu 22.04 server 64bit with Tesla Driver 470.223.02 and CUDA 11.4镜像为例。

    4. 选择一种方式远程连接GPU实例。(如VNC登录、CloudShell登录等)。

      本文以VNC登录为例。

  2. 安装Docker

    NGC容器基于Docker,因此您需要安装Docker和NVIDIA Docker,以便能够使用GPU加速的容器。

    本文以Ubuntu系统为例,在其他Linux操作系统或Windows、Mac上安装Docker,请参考Docker官方文档:https://docs.docker.com/get-docker/)。
    1. 更新包索引并安装Docker。
      sudo apt update
      sudo apt install -y docker.io
    2. 启动Docker服务并设置开机启动。
      sudo systemctl start docker
      sudo systemctl enable docker
    3. 验证Docker安装。
      docker --version

      回显如下类似信息,表示Docker安装成功。

    4. 验证Docker状态
      sudo systemctl status docker

  3. 安装NVIDIA Docker

    1. 添加NVIDIA Docker存储库

      # 获取并添加NVIDIA Docker GPG密钥

      curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

      # 添加 NVIDIA Docker 存储库

      distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
      curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
    2. 安装NVIDIA Docker。

      # 更新包列表

      sudo apt update

      # 安装nvidia-docker2和相关的依赖项

      sudo apt install nvidia-docker2

      # 重启Docker服务

      sudo systemctl restart docker
    3. 验证NVIDIA Docker配置

      # 检查是否已安装 nvidia-docker2

      dpkg -l | grep nvidia-docker2

      回显如下类似信息,表示安装成功。

  4. 拉取NGC容器镜像

    1. 使用Docker拉取你需要的容器镜像

      # 拉取TensorFlow容器镜像

      docker pull nvcr.io/nvidia/tensorflow:xx.xx-py3
      • 其中,xx.xx-py3表示TensorFlow的版本号和Python版本。例如:docker pull nvcr.io/nvidia/tensorflow:21.07-tf1-py3
      • TensorFlow镜像中的CUDA版本必须与GPU实例的驱动版本相匹配,否则会导致部署TensorFlow开发环境时失败。关于TensorFlow镜像版本、CUDA版本以及GPU实例的驱动版本对应匹配关系,请参见https://docs.nvidia.com/deeplearning/frameworks/tensorflow-release-notes/index.html
      • 下载TensorFlow容器镜像可能需要较长时间,请您耐心等待。
    2. 查看下载的TensorFlow容器镜像信息。
      docker image ls

  5. 运行NGC容器

    使用NVIDIA GPU运行容器。以下是一个启动 TensorFlow 容器的示例命令:

    docker run --gpus all -it --rm nvcr.io/nvidia/tensorflow:xx.xx-py3

    例如:

    docker run --gpus all -it --rm nvcr.io/nvidia/tensorflow:21.07-tf1-py3

  6. 测试TensorFlow

    依次执行以下命令,简单测试TensorFlow。

    python

    import tensorflow as tf
    print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

    回显如下类似信息,返回信息中包含GPU的数量。