Files
Docker-Installation-Debian-…/docker-install.sh
T
2026-05-25 20:57:51 +02:00

85 lines
2.3 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
# ------------------------------------------------------------
# Docker + Docker Compose Plugin Installer for Debian/Ubuntu
# ------------------------------------------------------------
if [[ "${EUID}" -ne 0 ]]; then
echo "Bitte als root oder mit sudo ausführen."
exit 1
fi
echo "==> Prüfe Betriebssystem ..."
if [[ ! -f /etc/os-release ]]; then
echo "Fehler: /etc/os-release nicht gefunden."
exit 1
fi
# shellcheck disable=SC1091
source /etc/os-release
if [[ "${ID}" != "ubuntu" && "${ID}" != "debian" ]]; then
echo "Dieses Skript unterstützt nur Debian und Ubuntu."
echo "Erkanntes System: ${ID}"
exit 1
fi
ARCH="$(dpkg --print-architecture)"
KEYRING_DIR="/etc/apt/keyrings"
DOCKER_GPG="${KEYRING_DIR}/docker.asc"
REPO_FILE="/etc/apt/sources.list.d/docker.list"
echo "==> Installiere Basis-Pakete ..."
apt-get update
apt-get install -y ca-certificates curl gnupg lsb-release
echo "==> Erstelle Keyring-Verzeichnis ..."
install -m 0755 -d "${KEYRING_DIR}"
echo "==> Lade Docker GPG-Key ..."
curl -fsSL "https://download.docker.com/linux/${ID}/gpg" -o "${DOCKER_GPG}"
chmod a+r "${DOCKER_GPG}"
echo "==> Konfiguriere Docker APT-Repository ..."
echo \
"deb [arch=${ARCH} signed-by=${DOCKER_GPG}] https://download.docker.com/linux/${ID} \
${VERSION_CODENAME} stable" | tee "${REPO_FILE}" > /dev/null
echo "==> Aktualisiere Paketquellen ..."
apt-get update
echo "==> Installiere Docker Engine, CLI, Containerd und Compose Plugin ..."
apt-get install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
echo "==> Aktiviere und starte Docker-Dienst ..."
systemctl enable docker
systemctl restart docker
# Optional: Benutzer zur docker-Gruppe hinzufügen, falls per sudo gestartet
if [[ -n "${SUDO_USER:-}" && "${SUDO_USER}" != "root" ]]; then
echo "==> Füge Benutzer '${SUDO_USER}' zur docker-Gruppe hinzu ..."
usermod -aG docker "${SUDO_USER}" || true
echo "HINWEIS: Damit Gruppenrechte greifen, bitte einmal ab- und wieder anmelden."
fi
echo "==> Installation abgeschlossen."
echo
echo "Installierte Versionen:"
docker --version || true
docker compose version || true
echo
echo "Teste Docker ..."
docker run --rm hello-world || true
echo
echo "Fertig."
echo "Verwendung von Compose:"
echo " docker compose up -d"