基于Dockerfile创建携带最新cuda版本以及与其配套的cudnn环境的ubuntu20.04镜像

最近涉及到一个在 x86 上机器上使用英伟达GPU资源做加速计算的项目,包括模型推理加速和编解码加速。
为了保持两个模块开发cuda环境的一致性,故构建该基础镜像。

编写Dockerfile脚本

# Use Ubuntu 20.04 as base image
FROM ubuntu:20.04

# Set non-interactive mode for apt-get
ENV DEBIAN_FRONTEND=noninteractive

# Update package lists and install basic dependencies
RUN sed -i 's|http://archive.ubuntu.com/ubuntu/|http://mirrors.aliyun.com/ubuntu/|g' /etc/apt/sources.list && \
    apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    wget \
    curl \
    vim \
    gnupg2 \
    lsb-release \
    ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# Install CUDA
# Add NVIDIA package repositories and keys
RUN sed -i 's|http://archive.ubuntu.com/ubuntu/|http://mirrors.aliyun.com/ubuntu/|g' /etc/apt/sources.list && \
    apt-get update && \
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb && \
    dpkg -i cuda-keyring_1.0-1_all.deb && \
    apt-get update && \
    apt-get install -y cuda \
    --fix-missing

# Set environment variables for CUDA
ENV PATH=/usr/local/cuda/bin:${PATH}
ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH}

# Clean up apt cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*

# Set default command
CMD ["bash"]

构建镜像

我要在x86平台使用,因此在构建时指定platform=linux/amd64参数

docker build --platform=linux/amd64 -t ubuntu-cuda:20.04 .

等待镜像构建完成即可,时间可能稍长。
注意:更换ubuntu使用的镜像源可大大提高构建成功率。(本Dockerfile 已经加入更换阿里源的操作)
另外--fix-missing 参数也不可少,它可以再次下载那些因网络波动而未能成功下载的包。

环境验证

运行 Docker 容器

docker run --rm --gpus all -it ubuntu-cuda:20.04 bash

使用nvcc --version 可以查看到cuda的版本;
如果宿主机安装了英伟达驱动的话,在容器中执行nvidia-smi 是可以看到GPU详细信息的。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部