From 85e6e36bbd7dd3c88289c46deca940ca5db7619c Mon Sep 17 00:00:00 2001 From: RolandS <1+xosna@noreply.localhost> Date: Mon, 25 May 2026 20:57:51 +0200 Subject: [PATCH] =?UTF-8?q?docker-install.sh=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-install.sh | 84 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 docker-install.sh diff --git a/docker-install.sh b/docker-install.sh new file mode 100644 index 0000000..5941b87 --- /dev/null +++ b/docker-install.sh @@ -0,0 +1,84 @@ +#!/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"