Zum Inhalt

Docker

🐳 Docker installieren

Installation von Docker auf einem Ubuntu 24.04 Server – Schritt für Schritt mit Erklärungen.
Ziel ist es, Docker sicher mit Root-Rechten (sudo) zu betreiben


📦 1. System vorbereiten

📋 System aktualisieren

sudo apt update && sudo apt upgrade -y

📋 Nötige Zusatzpakete installieren

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release -y

Diese Tools werden für das Hinzufügen von externen Repositories und für HTTPS-basierte Paketquellen benötigt – insbesondere für den offiziellen Docker-Downloadserver.


🐳 2. Docker Installation (Community Edition)

Docker bietet zwei Hauptvarianten:
- Docker CE (Community Edition) – kostenlos, offen, ideal für Homelabs ✅
- Docker EE (Enterprise Edition) – kommerziell, für Unternehmen

📋GPG-Schlüssel von Docker hinzufügen

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg

📋Docker-Repository eintragen

echo   "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/docker.gpg] https://download.docker.com/linux/ubuntu   $(lsb_release -cs) stable" |   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
dieses Repository gibt dir Zugriff auf die offiziellen und stabilen Docker-Pakete.


📋Docker installieren

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
  • docker-ce: der eigentliche Docker-Dienst
  • docker-ce-cli: Kommandozeilentools
  • containerd.io: verwaltet die Container im Hintergrund
  • buildx-plugin & compose-plugin: Tools für modernes Builden & Compose-Dateien

📋 3. Docker-Dienst aktivieren

sudo systemctl enable docker
sudo systemctl start docker

Damit Docker beim Systemstart automatisch verfügbar ist und du sofort loslegen kannst.

🔎 Hinweis zur Ausgabe:
Du wirst eventuell folgendes sehen:

Synchronizing state of docker.service with SysV service script...

Das ist kein Fehler, sondern eine Info, dass das System auch mit älteren Dienstverwaltungs-Methoden kompatibel ist.


Funktionstest

sudo docker run hello-world
- Docker lädt ein kleines Test-Image vom offiziellen Docker Hub - Es wird gestartet und zeigt eine Erfolgsmeldung, wenn alles richtig installiert ist


🔐 4. Entscheidung für sudo docker gegen docker-Gruppe)

Manche Anleitungen empfehlen, den Benutzer zur docker-Gruppe hinzuzufügen.
Wir tun das bewusst nicht – und hier ist der Grund:

✅ Vorteile von sudo docker

  • Mehr Sicherheit: Nur wer sudo-Rechte hat, kann Container starten oder löschen
  • Trennung von Rechten: Kein ungewollter Root-Zugriff durch normale Nutzer
  • Minimiertes Risiko: Der Zugriff auf Docker-Socket (/var/run/docker.sock) bleibt geschützt

⚠️ Warum du nicht die docker-Gruppe verwenden solltest

docker.sock = Root-Rechte ohne Passwort

Wenn ein Benutzer zur Gruppe docker gehört, kann er:

  • Container starten, die vollen Zugriff aufs Dateisystem haben
  • Root-Kommandos ausführen – ohne sudo
  • Im schlimmsten Fall das ganze System kompromittieren

🛡️ Deshalb: Für ein sicheres Homelab ist sudo docker die bessere Wahl.


🧹 Docker Hello World Container löschen

Falls du den hello-world-Container nach dem Test nicht mehr brauchst, kannst du ihn so entfernen:

Liste aller Container anzeigen:

sudo docker ps -a

Ausgabe:

CONTAINERID IMAGE               COMMAND     CREATED             STATUS                      PORTS               NAMES  
ffd67d6cadd2        hello-world     "/hello"            19hours ago     Exited(0)19hoursago     priceless_roentgen

der Name des Container lautet: priceless_roentgen (siehe NAMES priceless_roentgen)
die Bezeichnung des Images: hello-world (siehe IMAGE hello-world)

🗑️ Container löschen:

sudo docker rm CONTAINERID
CONTAINERID in diesem Fall ffd67d6cadd2

🧼 Optional: auch das zugehörige Image löschen

sudo docker rmi hello-world

Damit bleibt dein System aufgeräumt.