Usage of the CUDA container images requires the Nvidia Container Runtime.
Container images are available from:
With the next major release of CUDA at the end of the year, we will be deprecating the use of the "latest" tag for all CUDA container images on NGC and Docker Hub.
After the removal of the latest tag, the following use case will result in the "manifest unknown" error:
$ docker pull nvidia/cuda
Error response from daemon: manifest for nvidia/cuda:latest not found: manifest unknown: manifest unknown
We will also be using a new tag format that includes the full CUDA version "release label":
nvidia/cuda:11.1.0-devel-ubuntu18.04
Note the extra digit for the version. Future updates will include improvements in how we tag images to include security fixes to include a timestamp.
The CUDA images are scanned for CVE vulnerabilities prior to release and some images may contain CVEs at the time of publication.
Our Product Security teams reviews the CVEs and determines if the CVE should block the release or not. We try to mitigate as much as we can, but since we do not control the upstream base images, some cuda image releases might be impacted.
Please consult the README on the NGC or Docker Hub pages for details.
The LD_LIBRARY_PATH
is set inside the container to legacy nvidia-docker v1 paths that do not exist on newer installations. This is done to maintain compatibility for our partners that still use nvidia-docker v1 and this will not be changed for the forseable future. There is a chance this might cause issues for some.
The container image scripts are archived in the dist/
directory and are available for all supported distros and cuda versions.
Here is an example on how to build an image set for ubuntu20.04 and CUDA 11.0,
#/bin/bash
export IMAGE_NAME="nvidia/cuda"
export CUDA_VERSION="11.0"
export OS="ubuntu20.04"
export ARCH=`uname -m`
docker build -t "${IMAGE_NAME}:${CUDA_VERSION}-base-${OS}" "dist/${CUDA_VERSION}/${OS}-${ARCH}/base"
docker build -t "${IMAGE_NAME}:${CUDA_VERSION}-runtime-${OS}" --build-arg "IMAGE_NAME=${IMAGE_NAME}" "dist/${CUDA_VERSION}/${OS}-${ARCH}/runtime"
docker build -t "${IMAGE_NAME}:${CUDA_VERSION}-devel-${OS}" --build-arg "IMAGE_NAME=${IMAGE_NAME}" "dist/${CUDA_VERSION}/${OS}-${ARCH}/devel"
The dev.md document provides details on how the gitlab pipelines work and how to control, modify, or debug them.