Linux Mint

How to Use the NVIDIA GPU in the Docker Containers on Linux Mint 21

You can pass through your NVIDIA GPU in the Docker containers and run the CUDA programs on your NVIDIA GPU from these Docker containers. This is a very useful feature to learn AI (Artificial Intelligence). Being able to run the AI codes (i.e. Tensorflow) on Docker containers will save you a lot of time. You can also try out your AI codes on different CUDA versions without needing to change the CUDA version on your computer.

Fiddling with NVIDIA drivers and CUDA versions on your computer may cause problems like the NVIDIA drivers not working or leaving you with a black/blue screen of death. So, it’s always a good idea to leave your system as it is and make changes in an isolated environment like the Docker containers. This keeps your main computer clean (of unnecessary development tools).

In this article, we will show you how to install the Docker CE and NVIDIA docker on Linux Mint 21 so that you can access the NVIDIA GPU of your computer from the Docker containers and run the CUDA programs on your NVIDIA GPU.

Topic of Contents:

  1. Checking If the Official NVIDIA GPU Drivers Are Installed on Linux Mint 21
  2. Installing the Docker CE Dependencies on Linux Mint 21
  3. Installing the Docker CE GPG Keys on Linux Mint 21
  4. Installing the Docker CE Repository on Linux Mint 21
  5. Installing the Docker CE on Linux Mint 21
  6. Adding the Linux Mint 21 Login User to the Docker Group
  7. Checking If the Docker CE Is Installed Correctly on Linux Mint 21
  8. Installing the NVIDIA Container Toolkit GPG Keys on Linux Mint 21
  9. Installing the NVIDIA Container Toolkit Repository on Linux Mint 21
  10. Installing the NVIDIA-DOCKER Drivers on Linux Mint 21
  11. Checking If the NVIDIA GPU Is Accessible from the Docker Containers on Linux Mint 21
  12. Conclusion
  13. References

Checking If the Official NVIDIA GPU Drivers Are Installed on Linux Mint 21

Before you get started, run the following command to verify that you have an NVIDIA GPU installed on your computer.

$ lspci | grep VGA

In this case, we have the NVIDIA GTX 1050 Ti GPU installed on our computer. You will most likely have a different NVIDIA GPU installed on your computer.

Also, make sure that you have the official NVIDIA drivers installed on your Linux Mint 21 operating system with the following command:

$ lsmod | grep nvidia

If the official NVIDIA drivers are installed on your Linux Mint 21 operating system, you will see the following outputs:

Also, check if the official NVIDIA GPU drivers are working with the following command:

$ nvidia-smi

If the official NVIDIA GPU drivers are working, you will see the following outputs. As you can see, we have the official NVIDIA GPU Driver version 525.78.01 installed on our Linux Mint 21 machine.

If you don’t have the official NVIDIA GPU drivers installed on your Linux Mint 21 machine and you need any assistance with that, please check the article on How to Install the NVIDIA Drivers on Linux Mint 21

Installing the Docker CE Dependencies on Linux Mint 21

Before you can install the Docker CE on Linux Mint 21, you need to install the required Docker CE dependency packages on Linux Mint 21.

First, update the APT package repository cache with the following command:

$ sudo apt update

The APT package repository cache should be updated.

To install the required dependency packages of Docker CE, run the following command:

$ sudo apt-get install ca-certificates curl gnupg lsb-release

To confirm the installation, press Y and then press <Enter>.

The required Docker CE dependency packages should be installed.

Installing the Docker CE GPG Keys on Linux Mint 21

In this section, we will show you how to install the GPG key of the Docker CE package repository on Linux Mint 21.

First, create a new folder which is /etc/apt/keyrings with the following command:

$ sudo mkdir -p /etc/apt/keyrings

To install the GPG key of the Docker CE package repository on Linux Mint 21, run the following command:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Installing the Docker CE Repository on Linux Mint 21

To install the Docker CE package repository on Linux Mint 21, run the following command:

$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Update the APT package repository cache for the changes to take effect.

$ sudo apt update

Installing the Docker CE on Linux Mint 21

To install the latest version of Docker CE on Linux Mint 21, run the following command:

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

To confirm the installation, press Y and then press <Enter>.

Docker CE and the required dependency packages are being downloaded. It takes a while to complete.

Docker CE and the required dependency packages are being installed. It takes a while to complete.

Docker CE and the required dependency packages should be installed at this point.

Adding the Linux Mint 21 Login User to the Docker Group

To create the Docker containers and manage them without using sudo or logged in as a root user, you have to add your login user to the docker group.

To add the login user of your Linux Mint 21 to the docker group, run the following command:

$ sudo usermod -aG docker $(whoami)

For the changes to take effect, restart your computer with the following command:

$ sudo reboot

Checking If the Docker CE Is Installed Correctly on Linux Mint 21

Once your computer starts, run the following command to verify that you can access Docker without superuser privileges:

$ docker version

If everything works, you should see the following outputs.

As you can see, we are running the Docker version 20.10.23 – the latest version of Docker CE at the time of this writing.

Installing the NVIDIA Container Toolkit GPG Keys on Linux Mint 21

In this section, we will show you how to install the GPG key of the NVIDIA Container Toolkit package repository on Linux Mint 21.

To install the GPG key of the NVIDIA Container Toolkit package repository on Linux Mint 21, run the following command:

$ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

Installing the NVIDIA Container Toolkit Repository on Linux Mint 21

In this section, we will show you how to install the NVIDIA Container Toolkit package repository on Linux Mint 21.

First, create a new APT source file nvidia-container-toolkit.list in the /etc/apt/sources.list.d/ directory as follows:

$ sudo nano /etc/apt/sources.list.d/nvidia-container-toolkit.list

Add the following line in the nvidia-container-toolkit.list file and press <Ctrl> + X followed by Y and <Enter> to save the file:

deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/ubuntu22.04/$(ARCH) /

For the changes to take effect, update the APT package repository cache with the following command:

$ sudo apt update

Installing the NVIDIA-DOCKER Drivers on Linux Mint 21

To install the NVIDIA Docker drivers on Linux Mint 21, run the following command:

$ sudo apt install nvidia-docker2

To confirm the installation, press Y and then press <Enter>.

The NVIDIA docker drivers should be installed.

For the changes to take effect, restart your computer with the following command:

$ sudo reboot

Checking If the NVIDIA GPU Is Accessible from the Docker Containers in Linux Mint 21

In this section, we will show you how to create an NVIDIA CUDA Docker container and verify that the container can access the NVIDIA GPU from your computer.

To create an NVIDIA CUDA 12 Docker container based on Ubuntu 20.04 LTS and run the nvidia-smi command in it once it’s created to verify whether it can access the NVIDIA GPU from your computer, run the following command:

$ docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu20.04 nvidia-smi

Docker is pulling the nvidia/cuda:12.0.0-base-ubuntu20.04 image from Docker Hub. It takes a while to complete.

Once the NVIDIA CUDA docker image is pulled, a container is created. The nvidia-smi command runs on it and prints the output on the console as you can see in the following screenshot.

As you can see, the Docker container uses the NVIDIA GPU driver 525.78.01[1] and the CUDA version 12.0[2]. If you see similar outputs, the Docker container can access the NVIDIA GPU of your computer:

If you need to use the older versions of CUDA, check the nvidia/cuda image at the Docker Hub.

Conclusion

We showed you how to install the Docker CE package repository on Linux Mint 21. We also showed you how to install the latest version of Docker CE on Linux Mint 21. We showed you how to install the NVIDIA Container Toolkit package repository on Linux Mint 21 and how to install the NVIDIA Docker driver on Linux Mint 21 as well. Finally, we showed you how to access the NVIDIA GPU of your computer from a Docker container.

References:

  1. https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
  2. https://hub.docker.com/r/nvidia/cuda/tags

About the author

Shahriar Shovon

Freelancer & Linux System Administrator. Also loves Web API development with Node.js and JavaScript. I was born in Bangladesh. I am currently studying Electronics and Communication Engineering at Khulna University of Engineering & Technology (KUET), one of the demanding public engineering universities of Bangladesh.