Skip to content

docker

Install docker engine

Please check supported versions first before adding the repository.

sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

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

sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo pacman -S docker
sudo systemctl enable --now docker.service

Docker desktop for Windows.

choco install docker-desktop

NVIDIA GPU support

Install the NVIDIA Container Toolkit

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 update && sudo apt install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
yay -S nvidia-container-toolkit
sudo systemctl restart docker

Once a Windows NVIDIA GPU driver is installed on the system, CUDA becomes available within WSL 2.

And install the CUDA toolkit in the WSL (Ubuntu WSL for example)

# remove the old GPG key
sudo apt-key del 7fa2af80
# Install Linux CUDA toolkit
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update && sudo apt install -y cuda

Test docker installation

sudo docker run hello-world

# nvidia GPU support
sudo docker run --gpus all nvidia/cuda:12.0-base nvidia-smi

Optional setup

  • Move the Docker data directory to a bigger partition
  • Set up a pull-through cache (by Google) to avoid hitting the docker image pull rate limit by Dockerhub

Edit /etc/docker/daemon.json, add the following entries

/etc/docker/daemon.json
{
  "data-root": "/home/docker",
  "registry-mirrors": ["https://mirror.gcr.io"]
}

Then run the following command to reload docker daemon settings.

sudo service docker restart

Documentations and Tutorials for Docker

Docker Utilities

Comments