在构建Docker镜像时报错: Unable to locate package libcudnn7

1.构建Docker镜像时安装各种依赖项和软件包时,遇到问题:

bash 复制代码
E: Unable to locate package libcudnn7
E: Version '2.7.8-1+cuda11.0' for 'libnccl2' was not found
E: Version '2.7.8-1+cuda11.0' for 'libnccl-dev' was not found

配置代码片段:

bash 复制代码
FROM nvidia/cuda:11.0.3-devel-ubuntu18.04

ENV PROJECT=permatrack
# ENV PYTORCH_VERSION=1.4
# ENV TORCHVISION_VERSION=0.5.0
ENV PYTORCH_VERSION=1.7
ENV TORCHVISION_VERSION=0.8.0
ENV CUDNN_VERSION=8.0.5.39+cuda11.0
ENV NCCL_VERSION=2.7.8-1+cuda11.0
ENV TRT_VERSION=7.2.3
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8


RUN apt-get update && apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends \
    build-essential \
    cmake \
    g++-4.8 \
    git \
    curl \
    docker.io \
    vim \
    wget \
    ca-certificates \
    libcudnn7=${CUDNN_VERSION} \
    libnccl2=${NCCL_VERSION} \
    libnccl-dev=${NCCL_VERSION} \
    libjpeg-dev \
    libpng-dev \
    python${PYTHON_VERSION} \
    python${PYTHON_VERSION}-dev \
    python3-tk \
    librdmacm1 \
    libibverbs1 \
    libgtk2.0-dev \
    unzip \
    bzip2 \
    htop \
    gnuplot \
    ffmpeg

2.解决办法:不构建cudnn和nccl,即将下面3行注释:

bash 复制代码
libcudnn7=${CUDNN_VERSION} \
libnccl2=${NCCL_VERSION} \
libnccl-dev=${NCCL_VERSION} \

怀疑:后面nvidia的cuda镜像包含了cudnn和nccl,而在下面的代码中使用docker需要安装nccl和cudnn,应该是镜像比较早的,不过下面的镜像也找不到了,cuda镜像也得改成最新的了GitHub - TRI-ML/permatrack: Implementation for Learning to Track with Object Permanence

看到一个比较好的安装nvidia cuda镜像和使用容器的博客:Ubuntu上从CUDA开始构建深度学习镜像 - 八十八键的宇宙 (yuxinzhao.net)

相关推荐
GottdesKrieges11 小时前
OceanBase容量统计:租户、数据库、表大小
数据库·oceanbase
pan30350747912 小时前
mysql 回表查询(二次查询,如何检查,如何规避)
数据库·mysql
Michaelwubo12 小时前
elasticsearch-7.17.29 集群案例,k8s方式和原始方式
数据库
TDengine (老段)12 小时前
TDengine 选择函数 Last() 用户手册
大数据·数据库·sql·物联网·时序数据库·tdengine·涛思数据
little_xianzhong12 小时前
关于对逾期提醒的定时任务~改进完善
java·数据库·spring boot·spring·mybatis
Sally璐璐12 小时前
Go正则表达式实战指南
数据库·mysql·golang
小猪咪piggy12 小时前
【JavaEE】(23) 综合练习--博客系统
java·数据库·java-ee
bikong713 小时前
一种高效绘制余晖波形的方法Qt/C++
数据库·c++·qt
一叶飘零_sweeeet13 小时前
从 0 到 1 攻克订单表分表分库:亿级流量下的数据库架构实战指南
java·数据库·mysql·数据库架构·分库分表
感哥13 小时前
Docker镜像
docker