Es läuft nur bei Mia
Ein Container ist ein Programm, das zusammen mit allem verpackt ist, was es zum Laufen braucht. So läuft es auf jedem Rechner gleich.
Mia baut eine Webseite für ihren Handballverein. Bei ihr läuft alles. Auf dem Vereinsrechner startet die Seite nicht, weil dort andere Programmversionen stehen. Ein Container löst genau dieses Problem.
Am Ende dieser Lektion
Notiz
Ich kann an einem Container ablesen, ob seine App läuft, und im Protokoll nachsehen, was er gemeldet hat.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Container | ein Programm, verpackt mit allem, was es braucht, getrennt vom Rest | |
| Image | die Vorlage, aus der ein Container gestartet wird | |
| Docker | ein Programm, das Container startet und verwaltet | |
| Dienst | ein Programm, das im Hintergrund auf Anfragen wartet | web |
| Protokoll | der Text, den ein Programm über sich selbst schreibt (Log) | |
| Volume | ein Speicherplatz, der bleibt, auch wenn der Container ersetzt wird |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Bevor du anfängst
Notiz
Drück oben in der Leiste auf Lab starten. Das Lab ist deine eigene kleine Umgebung mit drei Diensten und braucht eine Minute zum Hochfahren. Jede Schaltfläche Ausführen tippt ihren Befehl in dein Terminal.
Ein Container verpackt ein Programm samt Umgebung
Ein Programm braucht oft bestimmte Versionen anderer Programme. Wenn sie fehlen, startet es nicht.
Ein Container packt das Programm und diese Teile in eine Kiste. Gestartet wird die Kiste aus einem Image. Aus einem Image kannst du beliebig viele gleiche Container starten.
Container und virtuelle Maschine im Vergleich
| Virtuelle Maschine | Container | |
|---|---|---|
| Betriebssystem | Ein ganzes eigenes | Teilt es mit dem Rechner, auf dem er läuft |
| Startzeit | Etwa eine Minute | Wenige Sekunden |
| Größe | Mehrere Gigabyte | Oft nur einige Megabyte |
| Gut dafür | Ein ganzes System nachbauen | Eine einzelne App verpacken |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
docker ps zeigt, was läuft
Der Befehl docker ps listet die Container auf, die gerade laufen. Mit -a zeigt er auch die gestoppten.
Mit --format bestimmst du, was in jeder Zeile steht. {{.Names}} ist der Name, {{.Status}} der Zustand. So bekommst du pro Container eine kurze Zeile.
Alle Container mit Zustand auflisten
docker ps -a --format "{{.Names}}: {{.Status}}"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
So liest du den Zustand
| Der Zustand sagt | Das bedeutet |
|---|---|
| Up 3 minutes (healthy) | Läuft seit drei Minuten und besteht seine Gesundheitsprüfung |
| Up 10 seconds | Läuft seit zehn Sekunden |
| Exited (0) 2 minutes ago | Hat sich vor zwei Minuten ohne Fehler beendet |
| Exited (1) 2 minutes ago | Hat sich vor zwei Minuten mit dem Fehlercode 1 beendet |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein häufiger Fehler
Warnung
Viele glauben, ein gestoppter Container sei gelöscht. Das stimmt nicht. Er steht noch da, nur ohne Strom. docker ps zeigt nur die laufenden Container, docker ps -a zeigt alle.
Das Protokoll sagt, was ein Programm gemeldet hat
Ein Programm schreibt auf, was es tut und was schiefgeht. Das ist sein Protokoll.
Mit docker logs und dem Namen liest du es. Steht ein Container still, ist das Protokoll der erste Ort, an dem du suchst. Oft steht die Ursache in der letzten Zeile.
Das Protokoll des Dienstes cache lesen
docker logs cacheHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
In cache einen Befehl ausführen
docker exec cache valkey-cli pingHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Was beim Neustart bleibt und was nicht
Dateien, die ein Container in seinem eigenen Dateisystem schreibt, gehören zu diesem Container. Ein Neustart behält sie, denn es ist derselbe Container.
Wird das Lab beendet, sind sie weg. Nur ein Volume bleibt. Wichtige Daten gehören deshalb in ein Volume.
Wo Dateien bleiben
| Ort der Datei | Container neu starten | Lab beenden |
|---|---|---|
| Im Dateisystem des Containers | Bleibt | Ist weg |
| In einem Volume | Bleibt | Bleibt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Weiterführend: dein Lab genau ansehen
Schau dir die Zeilen deines Labs an. Einer der drei Dienste läuft nicht. Schreib seinen Namen und seinen Zustand auf.
Lies danach sein Protokoll und notiere die Zeile, die dir sagt, was fehlt. Das Reparieren ist die Aufgabe des Labs. Hier schaust du nur hin.