You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
3.1 KiB
72 lines
3.1 KiB
#!/bin/bash |
|
function install_docker_in_ubuntu { |
|
sudo apt-get update |
|
sudo apt-get install \ |
|
ca-certificates \ |
|
curl \ |
|
gnupg \ |
|
lsb-release |
|
sudo apt-get update |
|
sudo apt-get install \ |
|
ca-certificates \ |
|
curl \ |
|
gnupg \ |
|
lsb-release |
|
echo \ |
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ |
|
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
|
sudo apt-get update |
|
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin |
|
} |
|
|
|
source /etc/os-release |
|
case $ID in |
|
debian|ubuntu|devuan) |
|
if [ ! "$(command -v docker)" ]; then |
|
echo "docker not existed" >&2 |
|
curl https://get.docker.com | sh \ |
|
&& sudo systemctl --now enable docker |
|
fi |
|
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ |
|
&& 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/$distribution/libnvidia-container.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-docker2 |
|
sudo systemctl restart docker |
|
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi |
|
;; |
|
centos|fedora|rhel) |
|
if test "$(echo "$VERSION_ID >= 22" | bc)" -ne 0; then |
|
if [ ! "$(command -v docker)" ]; then |
|
echo "docker not existed" >&2 |
|
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo |
|
dnf install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.4.3-3.1.el7.x86_64.rpm |
|
dnf install docker-ce -y |
|
systemctl --now enable docker |
|
fi |
|
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ |
|
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo |
|
dnf clean expire-cache --refresh |
|
dnf install -y nvidia-docker2 |
|
systemctl restart docker |
|
else |
|
if [ ! "$(command -v docker)" ]; then |
|
echo "docker not existed" >&2 |
|
yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo |
|
yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.4.3-3.1.el7.x86_64.rpm |
|
dnf install docker-ce -y |
|
systemctl --now enable docker |
|
fi |
|
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ |
|
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo |
|
yum clean expire-cache |
|
yum install -y nvidia-docker2 |
|
systemctl restart docker |
|
fi |
|
;; |
|
*) |
|
exit 1 |
|
;; |
|
esac |