GenStudio LLM API 部分模型价格调整公告GenStudio LLM API 部分模型价格调整公告 ,新价格 2025 年 11 月 1 日生效调价公告
Skip to content

CUDA + cudnn9.x 镜像 Dockerfile

如果出现以下情况,我们推荐您自己构建镜像:

  • 环境不匹配:平台提供的镜像不满足您特定的软件版本(如框架、库)组合。
  • 访问受限:您访问外部 Docker Hub 等公共仓库不方便或受限。

支持系统级 CUDA,需安装 CUDA 和 cuDNN。安装完成后,可使用 nvcc

说明

本文包含的 Dockerfile 可用于镜像中心基于 Dockerfile 构建镜像,或直接在开发机中构建镜像(使用 docker build/docker buildx build)。

  • 基于 Ubuntu 22.04 / 24.04
  • 安装 CUDA 12.9.1(见 Dockerfile 1)。如需安装其他 CUDA Toolkit 版本,参考下方替换方法(Dockerfile 2 为替换示例):
    1. 根据 CUDA Toolkit Archive 地址,查找 runfile 名称,例如 cuda_12.9.1_575.57.08_linux.run,并替换 Dockerfile 中的 runfile 名称。
    2. 替换 wget 命令中的具体版本路径,如 12.9.1
    3. 替换其他特定版本路径,如 cuda-12.9
  • 安装 cuDNN 9.x。如需不需要 cudnn,可移除 cudnn 内容

注意

平台宿主机已安装的 CUDA 驱动程序(Driver)决定了 GPU 最终能支持的功能上限。因此,您在选择用于开发和编译的 CUDA 工具包(Toolkit)时,建议按照应用要求选择合适的 CUDA 版本。一般建议 CUDA 版本不超过(即小于或等于)当前 CUDA 驱动程序所能支持的最高版本。在开发机中可使用 nvidia-smi 查询当前驱动版本。如驱动版本无法满足需求,可尝试更换可用区,或联系售后。

关于什么是系统级 CUDA 环境,可参考以下教程:

Dockerfile 1

下面的 Dockerfile 示例,以 Ubuntu 22.04 为基础镜像,安装 CUDA 12.9.1 和 cuDNN 9.x。

dockerfile
FROM cr.infini-ai.com/infini-ai/ubuntu:22.04-20240429

# 设置环境变量
# DEBIAN_FRONTEND=noninteractive 防止安装过程中的交互式提示
# PATH 添加CUDA可执行文件路径
# LD_LIBRARY_PATH 添加CUDA库文件路径
# CUDA_HOME 设置CUDA根目录
ENV PATH=/usr/local/cuda/bin:/usr/local/cuda-12.9/bin${PATH:+:${PATH}} \
    LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-12.9/lib64:/usr/lib/x86_64-linux-gnu${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} \
    CUDA_HOME=/usr/local/cuda \
    CPATH=/usr/include${CPATH:+:${CPATH}} \
    LIBRARY_PATH=/usr/lib/x86_64-linux-gnu${LIBRARY_PATH:+:${LIBRARY_PATH}}

# 安装CUDA并配置系统环境
# 1. 更新apt并安装必要工具
# 2. 清理apt缓存减小镜像体积
# 3. 下载CUDA安装包
# 4. 静默安装CUDA工具包(请勿安装 driver)
# 5. 配置动态链接库搜索路径
# 6. 更新动态链接库缓存
# 7. 清理安装包
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y wget build-essential \
    && rm -rf /var/lib/apt/lists/* \
    && wget https://developer.download.nvidia.com/compute/cuda/12.9.1/local_installers/cuda_12.9.1_575.57.08_linux.run \
    && sh cuda_12.9.1_575.57.08_linux.run --toolkit --silent --override \
    && echo '/usr/local/cuda/lib64' >> /etc/ld.so.conf \
    && echo '/usr/local/cuda-12.9/lib64' >> /etc/ld.so.conf \
    && ldconfig \
    && rm cuda_12.9.1_575.57.08_linux.run

# 安装cuDNN并配置环境
# 1. 下载并安装NVIDIA CUDA仓库公钥
# 2. 更新apt源
# 3. 安装cuDNN
# 4. 配置额外的库路径
# 5. 更新动态链接库缓存
# 6. 清理安装包和apt缓存
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb \
    && dpkg -i cuda-keyring_1.1-1_all.deb \
    && apt-get update \
    && apt-get install -y cudnn-cuda-12 \
    && echo '/usr/lib/x86_64-linux-gnu' >> /etc/ld.so.conf \
    && ldconfig \
    && rm cuda-keyring_1.1-1_all.deb \
    && rm -rf /var/lib/apt/lists/*

Dockerfile 2

下面的 Dockerfile 示例,以 Ubuntu 24.04 为基础镜像,安装 CUDA 12.8.1 和 cuDNN 9.x。

注意

并非所有 CUDA Tookit 版本均支持 Ubuntu 24.04。

dockerfile
FROM cr.infini-ai.com/infini-ai/ubuntu:24.04

# 设置环境变量
# DEBIAN_FRONTEND=noninteractive 防止安装过程中的交互式提示
# PATH 添加CUDA可执行文件路径
# LD_LIBRARY_PATH 添加CUDA库文件路径
# CUDA_HOME 设置CUDA根目录
ENV PATH=/usr/local/cuda/bin:/usr/local/cuda-12.8/bin${PATH:+:${PATH}} \
    LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-12.8/lib64:/usr/lib/x86_64-linux-gnu${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} \
    CUDA_HOME=/usr/local/cuda \
    CPATH=/usr/include${CPATH:+:${CPATH}} \
    LIBRARY_PATH=/usr/lib/x86_64-linux-gnu${LIBRARY_PATH:+:${LIBRARY_PATH}}

# 安装CUDA并配置系统环境
# 1. 更新apt并安装必要工具
# 2. 清理apt缓存减小镜像体积
# 3. 下载CUDA安装包
# 4. 静默安装CUDA工具包(请勿安装 driver)
# 5. 配置动态链接库搜索路径
# 6. 更新动态链接库缓存
# 7. 清理安装包
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y wget build-essential \
    && rm -rf /var/lib/apt/lists/* \
    && wget https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux.run \
    && sh cuda_12.8.1_570.124.06_linux.run --toolkit --silent --override \
    && echo '/usr/local/cuda/lib64' >> /etc/ld.so.conf \
    && echo '/usr/local/cuda-12.8/lib64' >> /etc/ld.so.conf \
    && ldconfig \
    && rm cuda_12.8.1_570.124.06_linux.run

# 安装cuDNN并配置环境
# 1. 下载并安装NVIDIA CUDA仓库公钥
# 2. 更新apt源
# 3. 安装cuDNN
# 4. 配置额外的库路径
# 5. 更新动态链接库缓存
# 6. 清理安装包和apt缓存
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb \
    && dpkg -i cuda-keyring_1.1-1_all.deb \
    && apt-get update \
    && apt-get install -y cudnn-cuda-12 \
    && echo '/usr/lib/x86_64-linux-gnu' >> /etc/ld.so.conf \
    && ldconfig \
    && rm cuda-keyring_1.1-1_all.deb \
    && rm -rf /var/lib/apt/lists/*

Dockerfile 3

下面的 Dockerfile 示例,以 Ubuntu 22.04 为基础镜像,安装 CUDA 12.4.1 和 cuDNN 9.x。

dockerfile
FROM cr.infini-ai.com/infini-ai/ubuntu:22.04-20240429

# 设置环境变量
# DEBIAN_FRONTEND=noninteractive 防止安装过程中的交互式提示
# PATH 添加CUDA可执行文件路径
# LD_LIBRARY_PATH 添加CUDA库文件路径
# CUDA_HOME 设置CUDA根目录
ENV PATH=/usr/local/cuda/bin:/usr/local/cuda-12.4/bin${PATH:+:${PATH}} \
    LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-12.4/lib64:/usr/lib/x86_64-linux-gnu${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} \
    CUDA_HOME=/usr/local/cuda \
    CPATH=/usr/include${CPATH:+:${CPATH}} \
    LIBRARY_PATH=/usr/lib/x86_64-linux-gnu${LIBRARY_PATH:+:${LIBRARY_PATH}}

# 安装CUDA并配置系统环境
# 1. 更新apt并安装必要工具
# 2. 清理apt缓存减小镜像体积
# 3. 下载CUDA安装包
# 4. 静默安装CUDA工具包(请勿安装 driver)
# 5. 配置动态链接库搜索路径
# 6. 更新动态链接库缓存
# 7. 清理安装包
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y wget build-essential \
    && rm -rf /var/lib/apt/lists/* \
    && wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run \
    && sh cuda_12.4.1_550.54.15_linux.run --toolkit --silent --override \
    && echo '/usr/local/cuda/lib64' >> /etc/ld.so.conf \
    && echo '/usr/local/cuda-12.4/lib64' >> /etc/ld.so.conf \
    && ldconfig \
    && rm cuda_12.4.1_550.54.15_linux.run

# 安装cuDNN并配置环境
# 1. 下载并安装NVIDIA CUDA仓库公钥
# 2. 更新apt源
# 3. 安装cuDNN
# 4. 配置额外的库路径
# 5. 更新动态链接库缓存
# 6. 清理安装包和apt缓存
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb \
    && dpkg -i cuda-keyring_1.1-1_all.deb \
    && apt-get update \
    && apt-get install -y cudnn-cuda-12 \
    && echo '/usr/lib/x86_64-linux-gnu' >> /etc/ld.so.conf \
    && ldconfig \
    && rm cuda-keyring_1.1-1_all.deb \
    && rm -rf /var/lib/apt/lists/*

CUDA Toolkit Archive 地址

访问以下地址,可查到在 Ubuntu 22.04 上相应 CUDA Toolkit 对应的 runfile 名称(例如 cuda_12.9.1_575.57.08_linux.run),用于替换 Dockerfile 中的 runfile 文件名。