最終更新 1747730508

修正履歴 181f3fae23bf7cd31cfa187edcb7648c96537136

install_docker.sh Raw
1#!/usr/bin/env bash
2set -euo pipefail
3
4export DEBIAN_FRONTEND=noninteractive
5
6# -------- helpers --------
7retry() {
8 local cmd="$1"
9 local what="$2"
10 until eval "$cmd"; do
11 echo "$what failed, retrying in 5 seconds…"
12 sleep 5
13 done
14}
15
16# -------- remove any old Docker bits --------
17retry "apt-get remove -y docker.io docker-doc docker-compose containerd runc || true" "apt-get remove"
18
19# -------- base package refresh --------
20retry "apt-get update -y" "apt-get update"
21retry "apt-get install -y apt-transport-https ca-certificates curl software-properties-common" \
22 "install prerequisites"
23
24# -------- add Docker repo & key --------
25if [[ ! -f /usr/share/keyrings/docker-archive-keyring.gpg ]]; then
26 curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
27 | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
28fi
29
30lsb_release -cs | read -r codename
31echo \
32 "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
33 https://download.docker.com/linux/ubuntu ${codename} stable" \
34 > /etc/apt/sources.list.d/docker.list
35
36retry "apt-get update -y" "apt-get update (Docker repo)"
37
38# -------- install Docker engine & plugins --------
39retry "apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin" \
40 "install Docker"
41
42# -------- enable & start --------
43systemctl enable --now docker
44
45# -------- quick validation --------
46docker run --rm hello-world
47echo "✅ Docker installed and working."
48