Enable GPU support in WSL2 to test or build docker images
In this article, we will go through step by step to setup GPU support in local docker engine or runtime for Windows WSL2 or Linux like Ubuntu 22.04LTS. It is recommended to harden below configurations if you plan for production purpose.

Install Docker Engine
Install prerequisites:
sudo apt update && sudo apt upgrade -y
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release -yRegister docker repository to apt source list:
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get updateInstall the Docker Engine:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginSetup permissions:
sudo usermod -aG docker $USERStart docker service:
sudo service docker startTest Docker installation:
sudo docker run hello-world
Install NVIDIA Container Toolkit
Register toolkit repository to apt source list:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get updateInstall NVIDIA Container Toolkit packages:
sudo apt-get install -y nvidia-container-toolkitConfigure Docker runtime:
sudo nvidia-ctk runtime configure --runtime=docker
sudo service docker restartTest
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
Further Readings
It is not recommended to run GPU docker inside WSL2. If you want to run GPU docker environment in a Linux system with GPU supports, you might want to configure rootless. To do so, you could find more details from below links:
Enjoy!





