Docker schnell verstehen: Die wichtigsten Befehle mit einfachen Beispielen

Docker Befehle

Docker schnell verstehen: Die wichtigsten Befehle mit einfachen Beispielen

Docker macht es leicht, Anwendungen in Containern auszuführen – isoliert, reproduzierbar und schnell.
In diesem Artikel lernst du die wichtigsten Befehle kennen und probierst sie sofort aus.
Alles ist anfängerfreundlich erklärt und direkt zum Nachmachen.


Voraussetzungen

  • Docker ist installiert (docker --version sollte eine Version ausgeben).
  • Terminal/Konsole geöffnet (macOS/Linux: Terminal, Windows: PowerShell oder WSL).
  • Internetverbindung (zum Herunterladen von Images).

Wichtige Begriffe (kurz & klar)

  • Image: Vorlage/“Bauplan” für Container (z. B. nginx).
  • Container: Laufende Instanz eines Images.
  • Registry: Online-Katalog für Images (z. B. Docker Hub).
  • Detached Mode: Container läuft im Hintergrund (-d).
  • Port-Mapping: Verbindet Host-Port mit Container-Port (-p 5000:80).
  • Volume: Bindet Ordner/Dateien in den Container (-v).

1) Was läuft gerade? – Container & Images anzeigen

Befehl Erklärung
docker ps Laufende Container anzeigen
docker ps -a Auch beendete Container anzeigen
docker images oder docker image ls Installierte Images anzeigen
docker info Übersicht über Docker-Installation & System

2) Images finden & laden

Befehl Erklärung
docker search <name> Suche nach einem Image (z. B. docker search nginx)
docker pull <name> Image herunterladen (z. B. docker pull nginx)

3) Deinen ersten Container starten

Beispiel A: Nginx Webserver lokal testen

  1. Starte Nginx und mappe Port 5000 auf den Container-Port 80:
docker run -p 5000:80 nginx

Öffne jetzt im Browser: http://localhost:5000

Im Hintergrund laufen lassen (detached)

docker run -p 5000:80 -d nginx

Der Container läuft weiter, auch wenn das Terminal geschlossen wird.

Beispiel B: Interaktiv in eine Minimal-Shell (busybox)

docker run -it busybox sh

-it = interaktiv mit TTY. Beenden mit exit (oder abbrechen mit Strg+C).


4) Container benennen, neu starten & sauber wieder verlassen

Befehl Erklärung
docker run -dit --name webklaus -p 80:80 nginx Startet Nginx im Hintergrund, vergibt einen festen Container-Namen (webklaus) und mappt Port 80
docker exec -ti webklaus bash Öffnet eine Bash im laufenden Container (beenden mit exit – Container läuft weiter)
docker attach webklaus “An” den Hauptprozess anhängen. Mit Strg+P, dann Strg+Q sauber trennen (Container läuft weiter)
Tipp: exec startet eine neue Shell im Container (sicherer für Admin-Aufgaben).
attach hängt an den Hauptprozess – unbeabsichtigtes Beenden kann den Container stoppen.

5) Eigene HTML-Seiten mit Nginx testen (Volume-Mount)

Angenommen, du hast einen lokalen Ordner mit einer index.html. Binde ihn in Nginx ein:

docker run -p 80:80 -d \
  -v "/pfad/zu/deinem/ordner:/usr/share/nginx/html" \
  --name mysite \
  nginx
  • -v verknüpft dein lokales Verzeichnis mit dem Webroot im Container.
  • Unter Windows ersetze einfache Anführungszeichen ggf. durch doppelte ("...:...").

Praktische Startvariante mit Neustart-Politik:

docker run -p 80:80 -dit \
  --restart unless-stopped \
  -v "/pfad/zu/deinem/ordner:/usr/share/nginx/html" \
  --name mysite \
  nginx
So habe ich es z. B. unter meinem ubuntu-Rechner gemacht, mit dem Home-Verzeichnis tobias:
docker run -p 80:80 -d -dit --name webserver --restart unless-stopped -v '/home/tobias/Öffentlich/web/':/usr/share/nginx/html nginx 

Neustart-Politiken: no (Standard), always (Vorsicht), unless-stopped (empfohlen), on-failure.


6) Container stoppen, löschen & aufräumen

Befehl Erklärung
docker stop <container> Container anhalten
docker rm <container> Gestoppten Container löschen
docker container prune Alle gestoppten Container löschen (Bestätigung nötig)
docker image rm <image> Image löschen
docker image prune Ungenutzte Images löschen

7) Logs & Ressourcen prüfen

Befehl Erklärung
docker logs <container> Logs eines Containers anzeigen
docker logs -f <container> Logs “folgen” (live mitlesen, abbrechen mit Strg+C)
docker stats CPU-/RAM-/Netzwerk-Nutzung laufender Container (abbrechen mit Strg+C)

8) Ressourcen begrenzen (optional)

So limitierst du Speicher und CPU bei einem neuen Container:

docker run -m 64m --cpus="0.5" --name sparsam busybox sh -c "while true; do sleep 5; done"
  • -m 64m = max. 64 MB RAM
  • --cpus="0.5" = halbe CPU

9) Mini-Crashkurs: Docker Compose

Mit Compose startest du mehrere Container als “Stapel”. Lege eine Datei docker-compose.yml an und starte alles mit einem Befehl.

Beispiel: Nginx per Docker Compose (zum Aufklappen)
# docker-compose.yml
services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
    restart: unless-stopped

Dann starten:

docker compose up -d

Beenden & entfernen:

docker compose down

Häufige Stolpersteine (und schnelle Lösungen)

  • Port schon belegt? Wähle einen anderen Host-Port, z. B. -p 5001:80.
  • Kein Zugriff auf Ordner? Prüfe den Pfad und die Rechte; unter Windows/Powershell doppelte Anführungszeichen nutzen.
  • Container stoppt sofort? Manche Images beenden sich, wenn kein Vordergrundprozess läuft – nutze -d, oder starte einen Dienst/Befehl im Vordergrund.
  • “Permission denied” bei Volume? Ordner existiert? Rechte prüfen; unter Linux ggf. sudo verwenden.

Spickzettel (Cheatsheet)

Befehl Erklärung
docker ps Laufende Container
docker ps -a Alle Container (inkl. beendeter)
docker images / docker image ls Installierte Images
docker search <name> Image suchen
docker pull <name> Image laden
docker run <image> Container starten
docker run -p 5000:80 nginx Nginx auf localhost:5000
docker run -it busybox sh Interaktive Shell
docker run -dit --name NAME <image> Benannter, “detached” Container
docker exec -ti <container> bash Shell im Container (beenden: exit)
docker attach <container> An Hauptprozess anhängen (trennen: Strg+P, dann Strg+Q)
docker stop <container> Container stoppen
docker rm <container> Gestoppten Container löschen
docker container prune Alle gestoppten Container löschen
docker image rm <image> Image löschen
docker image prune Ungenutzte Images löschen
docker logs [-f] <container> Logs ansehen [folgen]
docker stats Ressourcenauslastung
docker run -m 64m --cpus="0.5" <image> Ressourcen begrenzen
docker compose up -d Compose-Stack starten
docker compose down Compose-Stack stoppen & entfernen

Viel Erfolg beim Ausprobieren! Wenn du möchtest, erweitere ich den Artikel gern um einen Abschnitt “Fehlerdiagnose” mit typischen Fehlermeldungen und Lösungen – sag einfach Bescheid.

Docker Befehle für Anfänger
Docker Befehle für Anfänger

Comments

No comments yet. Why don’t you start the discussion?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert