NVIDIA/libnvidia-container
C
Captured source
source ↗NVIDIA/libnvidia-container
Description: NVIDIA container runtime library
Language: C
License: Apache-2.0
Stars: 1110
Forks: 263
Open issues: 8
Created: 2017-04-14T23:45:54Z
Pushed: 2026-06-14T18:52:20Z
Default branch: main
Fork: no
Archived: no
README:
libnvidia-container
This repository provides a library and a simple CLI utility to automatically configure GNU/Linux containers leveraging NVIDIA hardware.\ The implementation relies on kernel primitives and is designed to be agnostic of the container runtime.
Installing the library
From packages
Configure the package repository for your Linux distribution.
Install the packages:
libnvidia-container1 libnvidia-container-tools
From sources
With Docker:
# Generate docker images for a supported
make {ubuntu18.04, ubuntu16.04, debian10, debian9, centos7, amazonlinux2, opensuse-leap15.1}
# Or generate docker images for all supported distributions in the dist/ directory
make dockerThe resulting images have the name nvidia/libnvidia-container/:
Without Docker:
make install # Alternatively in order to customize the installation paths DESTDIR=/path/to/root make install prefix=/usr
Using the library
Container runtime example
Refer to the nvidia-container-runtime project.
Command line example
# Setup a new set of namespaces cd $(mktemp -d) && mkdir rootfs sudo unshare --mount --pid --fork # Setup a rootfs based on Ubuntu 16.04 inside the new namespaces curl http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04.6-base-amd64.tar.gz | tar -C rootfs -xz useradd -R $(realpath rootfs) -U -u 1000 -s /bin/bash nvidia mount --bind rootfs rootfs mount --make-private rootfs cd rootfs # Mount standard filesystems mount -t proc none proc mount -t sysfs none sys mount -t tmpfs none tmp mount -t tmpfs none run # Isolate the first GPU device along with basic utilities nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig.real --no-cgroups --utility --device 0 $(pwd) # Change into the new rootfs pivot_root . mnt umount -l mnt exec chroot --userspec 1000:1000 . env -i bash # Run nvidia-smi from within the container nvidia-smi -L
Copyright and License
This project is released under the BSD 3-clause license.
Additionally, this project can be dynamically linked with libelf from the elfutils package (https://sourceware.org/elfutils), in which case additional terms apply.\ Refer to NOTICE for more information.
Issues and Contributing
[Checkout the Contributing document!](CONTRIBUTING.md)
- Please let us know by filing a new issue
- You can contribute by opening a pull request
Notability
notability 6.0/10New NVIDIA container library, 1.1k stars