Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Docker-Grundlagen

Die ganze Lektion steht hier zum Lesen. Erstellen Sie ein kostenloses Konto, um sie in einem Live-Lab auszuführen.

Container-Lab7 Min. Lesezeit6 Befehle

Was du machst

Ein Container ist ein Programm, das in seiner eigenen kleinen, geschlossenen Kiste läuft, mit eigenen Dateien. Echte Systeme bestehen aus mehreren Containern, die zusammenarbeiten. Wenn einer stehen bleibt, schaust du zuerst, was gerade läuft, liest, was er gemeldet hat, und siehst bei den Nachbarn nach. Dein Lab hat drei Container, und einer startet nicht. Du findest heraus, warum, behebst den Fehler und startest ihn wieder. Dafür nutzt du die vier docker-Befehle, die dieses Terminal erlaubt.

Bevor du anfängst

Notiz

Drücke oben in der Leiste dieser Lektion auf Lab starten und warte, bis dort steht, dass es läuft. Die drei Container heißen web, cache und worker, und docker kennt in diesem Terminal nur sie. Jede Schaltfläche Ausführen tippt ihren Befehl in das Terminal deines Labs, einen nach dem anderen in derselben Sitzung. Willst du zuschauen oder eigene Befehle tippen, drücke in der Leiste auf Terminal öffnen (neuer Tab).

1. Sieh nach, was läuft, und lies das Protokoll

docker ps -a listet alle Container auf, auch die angehaltenen. Lies die Spalte STATUS: web und cache zeigen Up und (healthy), worker zeigt Exited (1). Er hat also gleich nach dem Start angehalten. Ein einfaches docker ps hätte ihn gar nicht gezeigt. Ein angehaltener Container hat noch sein Protokoll, und der zweite Befehl gibt es aus. Die erste Zeile beginnt mit worker: cannot start und sagt, dass in seiner Einstellungsdatei die Zeile QUEUE_HOST fehlt.

Befehl
docker ps -a

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
docker logs worker

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

2. Sieh bei einem Nachbarn nach, behebe den Fehler und starte neu

In einen angehaltenen Container kannst du nicht hineinschauen. Aber web teilt mit ihm den Einstellungsordner, ein benanntes Volume. docker exec führt einen Befehl in einem laufenden Container aus. Dieser hier gibt die Einstellungsdatei aus: vier Zeilen, die letzte ist POLL_SECONDS=5. Der zweite Befehl fügt die fehlende Zeile hinzu. Sie nennt den Dienst, der die Warteschlange hält, nämlich cache. (Für eine Shell im Container tippst du docker exec -it web sh in deinem eigenen Terminal.) Danach startet docker restart worker ihn neu und gibt seinen Namen aus.

Befehl
docker exec web cat /settings/worker.conf

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
docker exec web sh -c "echo QUEUE_HOST=cache >> /settings/worker.conf"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
docker restart worker

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

3. Prüfe es und sieh, was erhalten bleibt

Jetzt zeigt worker Up und einige Sekunden lang (health: starting), bevor (healthy) erscheint. Führe den Befehl noch einmal aus, falls sich noch nichts geändert hat. Wenn du jetzt in deinem eigenen Terminal docker logs worker tippst, enden die Zeilen im Protokoll mit worker: finished job. Drücke dann in der Lab-Leiste auf Lab beenden und wieder auf Lab starten, und führe docker ps -a aus. Der Worker läuft sofort gesund, weil deine Zeile im benannten Volume steht. Alles, was du außerhalb von /settings in einen Container geschrieben hättest, wäre weg. So verhalten sich Container überall.

Befehl
docker ps

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Für Lehrkräfte

Tipp

Diese Lektion ist ein kleines Beispiel für eine Lektion, die in einem Lab bearbeitet wird: Die Schritte und die Schaltflächen „Ausführen“ sind die Lektion, und das Lab ist die eigene Kopie jeder lernenden Person. Das Lab besteht aus drei Diensten und einem benannten Volume, und nichts darin bewertet sich selbst. Die Lernenden geben docker ps -a vor und nach der Reparatur ab, dazu die Protokollzeile, die ihnen den Fehler verraten hat, und einen Satz dazu, was erhalten bleibt, wenn das Lab beendet wird. Kopieren Sie die Lektion in Ihr eigenes Modul und ändern Sie sie, oder bauen Sie mit dem Menü Lab im Lektionseditor eine neue.

Über dieses Lab und seinen Quellcode: Docker-Grundlagen-Lab: Container, Logs und Neustarts lernen, indem ein defekter Dienst repariert wird

Sie unterrichten eine Klasse? Weisen Sie diese Lektionen Ihren Lernenden zu, mit Bewertung und einem Lab für jede lernende Person.