Go to file
Renaud Gaubert 2545ca0bfd Update contributing.md to reflect the right project name
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2019-09-13 22:21:16 +00:00
.github Update template issue to include nvidia-container-cli informations 2018-12-20 09:02:06 -08:00
debian Use the RUNTIME_VERSION variable defined in the Makefile 2019-07-22 16:11:32 -07:00
rpm Use the RUNTIME_VERSION variable defined in the Makefile 2019-07-22 16:11:32 -07:00
.dockerignore Add .dockerignore 2017-11-16 21:20:38 -08:00
.gitignore Merge branch '2.0' 2017-11-13 21:10:52 -08:00
CONTRIBUTING.md Update contributing.md to reflect the right project name 2019-09-13 22:21:16 +00:00
daemon.json Use relative path for nvidia-container-runtime 2018-06-18 14:50:46 -07:00
Dockerfile.amzn Fix nvidia-docker version 2019-08-12 14:42:31 -07:00
Dockerfile.centos fix duplicated DOCKER/RUNTIME_VERSION ENV/ARG declarations 2019-08-23 15:45:20 -07:00
Dockerfile.debian Fix nvidia-docker version 2019-08-12 14:42:31 -07:00
Dockerfile.opensuse-leap Add openSUSE Leap 15.1 support 2019-08-23 15:45:20 -07:00
Dockerfile.ubuntu fix duplicated DOCKER/RUNTIME_VERSION ENV/ARG declarations 2019-08-23 15:45:20 -07:00
LICENSE Relicense to Apache2 2019-08-14 16:41:01 -07:00
Makefile Bump to version 2.2.2 2019-09-04 10:57:10 -07:00
nvidia-docker Fix nvidia-docker version 2019-08-12 14:42:31 -07:00
README.md Merge branch 'readme-update' into 'master' 2019-08-27 20:44:11 +00:00

NVIDIA Container Toolkit

GitHub license Documentation Package repository

nvidia-gpu-docker

Introduction

The NVIDIA Container Toolkit allows users to build and run GPU accelerated Docker containers. The toolkit includes a container runtime library and utilities to automatically configure containers to leverage NVIDIA GPUs. Full documentation and frequently asked questions are available on the repository wiki.

Quickstart

Make sure you have installed the NVIDIA driver and Docker 19.03 for your Linux distribution

Note that with the release of Docker 19.03, usage of nvidia-docker2 packages are deprecated since NVIDIA GPUs are now natively supported as devices in the Docker runtime. If you are an existing user of the nvidia-docker2 packages, review the instructions in the “Upgrading with nvidia-docker2” section.

For first-time users of Docker 19.03 and GPUs, continue with the instructions for getting started below.

Ubuntu 16.04/18.04, Debian Jessie/Stretch/Buster

# Add the package repositories
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
$ sudo systemctl restart docker

CentOS 7 (docker-ce), RHEL 7.4/7.5 (docker-ce), Amazon Linux 1/2

$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo

$ sudo yum install -y nvidia-container-toolkit
$ sudo systemctl restart docker

openSUSE Leap 15.1 (docker-ce)

Since openSUSE Leap 15.1 still has Docker 18.06, you have two options:

Option 1: use the Virtualization:containers repository to fetch a more recent version of Docker

# Upgrade Docker to 19.03+ first:
$ zypper ar https://download.opensuse.org/repositories/Virtualization:/containers/openSUSE_Leap_15.1/Virtualization:containers.repo
$ zypper install --allow-vendor-change 'docker >= 19.03'  # accept the new signature

# Add the package repositories
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ zypper ar https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo

$ sudo zypper install -y nvidia-container-toolkit
$ sudo systemctl restart docker

Option 2: stay with the deprecated nvidia-docker2 package for now (see also below)

# Add the package repositories
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ zypper ar https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo

$ sudo zypper install -y nvidia-docker2  # accept the overwrite of /etc/docker/daemon.json
$ sudo systemctl restart docker

Usage

#### Test nvidia-smi with the latest official CUDA image
$ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi

# Start a GPU enabled container on two GPUs
$ docker run --gpus 2 nvidia/cuda:9.0-base nvidia-smi

# Starting a GPU enabled container on specific GPUs
$ docker run --gpus '"device=1,2"' nvidia/cuda:9.0-base nvidia-smi
$ docker run --gpus '"device=UUID-ABCDEF,1"' nvidia/cuda:9.0-base nvidia-smi

# Specifying a capability (graphics, compute, ...) for my container
# Note this is rarely if ever used this way
$ docker run --gpus all,capabilities=utility nvidia/cuda:9.0-base nvidia-smi

Upgrading with nvidia-docker2 (Deprecated)

If you are running an old version of docker (< 19.03) check the instructions on installing the nvidia-docker2 package which supports Docker >= 1.12. If you already have the old package installed (nvidia-docker2), updating to the latest Docker version (>= 19.03) will still work and will give you access to the new CLI options for supporting GPUs:

# On debian based distributions: Ubuntu / Debian
$ sudo apt-get update
$ sudo apt-get --only-upgrade install docker-ce nvidia-docker2
$ sudo systemctl restart docker

# On RPM based distributions: Centos / RHEL / Amazon Linux
$ sudo yum upgrade -y nvidia-docker2
$ sudo systemctl restart docker

# All of the following options will continue working
$ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi
$ docker run --runtime nvidia nvidia/cuda:9.0-base nvidia-smi
$ nvidia-docker run nvidia/cuda:9.0-base nvidia-smi

Note that in the future, nvidia-docker2 packages will no longer be supported.

Issues and Contributing

Checkout the Contributing document!