From 9bcfeb66674bc11cc59825d5f0f4de967375bf05 Mon Sep 17 00:00:00 2001 From: Pierrick Hymbert Date: Mon, 25 Mar 2024 08:55:50 +0100 Subject: [PATCH] ci: add install-docker.sh (#1) * ci: add install-docker.sh * ci: docker: move docker cache to large disk * ci: docker: fix rootless installation --- install-docker.sh | 50 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 install-docker.sh diff --git a/install-docker.sh b/install-docker.sh new file mode 100755 index 0000000000..d198679c3d --- /dev/null +++ b/install-docker.sh @@ -0,0 +1,50 @@ +#!/bin/bash +set +eux + +# https://docs.docker.com/engine/install/ubuntu/ +# Add Docker's official GPG key: +sudo apt-get update +sudo apt-get install -y ca-certificates curl +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 + +# Add the repository to Apt sources: +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 update + +# Install docker +sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin + +# Install NVidia docker engine runtime +# https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html +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 update +sudo apt-get install -y nvidia-container-toolkit + +# Rootless mode +# https://docs.docker.com/engine/security/rootless/ +sudo apt-get install -y dbus-user-session +sudo systemctl stop docker docker.socket +sudo systemctl disable --now docker.service docker.socket + +dockerd-rootless-setuptool.sh install +mv ~/.docker /mnt/ +ln -s /mnt/.docker ~/.docker +systemctl --user start docker +systemctl --user enable docker +sudo loginctl enable-linger $(whoami) + +# Configuring Docker NVidia +nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json +systemctl --user restart docker +sudo nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place + +docker run -it --rm --gpus all ubuntu nvidia-smi +