#!/usr/bin/env bash # Installiert Docker Engine + Compose-Plugin aus dem offiziellen Docker-Repository. set -euo pipefail log() { printf '\033[1;33m[LX0]\033[0m %s\n' "$*"; } fail() { printf '\033[1;31m[FEHLER]\033[0m %s\n' "$*"; exit 1; } if command -v docker >/dev/null 2>&1 && sudo docker compose version >/dev/null 2>&1; then log "Docker ist bereits installiert — überspringe." else log "Installiere Docker (offizielles Repository) ..." sudo apt-get update -qq sudo apt-get install -y ca-certificates curl gnupg 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 # Zorin basiert auf Ubuntu LTS — UBUNTU_CODENAME liefert die passende Paketquelle # shellcheck disable=SC1091 . /etc/os-release codename="${UBUNTU_CODENAME:-${VERSION_CODENAME:-}}" [ -n "$codename" ] || fail "Ubuntu-Codename nicht erkennbar — /etc/os-release prüfen." echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $codename stable" \ | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null sudo apt-get update -qq sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin fi sudo systemctl enable --now docker sudo usermod -aG docker "$USER" log "Docker bereit. (Ohne sudo nutzbar nach erneutem Anmelden.)"