So verwenden Sie Docker-Container

So verwenden Sie Docker-Container
Ein Foto einer Person, die an einem Laptop programmiert.

Container sind das Lebenselixier jeder Docker-Installation. Sie dienen als Grundlage der Docker-Plattform und ermöglichen es Ihnen, Dienste auf Ihrem Computer auszuführen, ohne sich um Abhängigkeiten und Versionskonflikte sorgen zu müssen. Hier zeigen wir Ihnen die Grundlagen zum Erstellen, Verwalten und Anpassen von Docker-Containern mit dem Docker-CLI-Tool.

So finden und ziehen Sie ein Docker-Image

Docker-Container sind eine spezielle Art von Softwareumgebung, die es Ihnen ermöglicht, Programme getrennt vom Rest Ihres ursprünglichen Systems auszuführen. Um dies zu erreichen, verwendet Docker „Software-Images“. Dies sind statische Kopien von Programmen, die als Basis dienen, von der aus ein Container gestartet wird.

Diese Unterscheidung zwischen Image und Container ermöglicht es Ihnen, Ihre Software nach Bedarf neu zu erstellen und anzupassen. Sie können beispielsweise ein Image wie „httpd“ haben, daraus aber zwei verschiedene Container erstellen: „website1“ und „website2“.

Der einfachste Weg, ein neues Docker-Image anzuzeigen, ist die Verwendung des searchUnterbefehls:

Ein Terminal, das das httpd-Docker-Image aus dem CLI-Tool hervorhebt.
Ein Screenshot, der das httpd-Docker-Image von der Docker Hub-Website zeigt.

Um das Image auf Ihr System herunterzuladen, führen Sie den folgenden Befehl aus:

Bestätigen Sie mit dem folgenden Unterbefehl, dass Sie das neue Image ordnungsgemäß zu Ihrem System hinzugefügt haben images:

Ein Terminal, das das installierte httpd-Docker-Image auf dem System hervorhebt.

Erstellen eines neuen Images mit Dockerfiles

Sie können nicht nur vorgefertigte Images aus Docker Hub abrufen, sondern auch Images direkt aus der Docker-CLI erstellen. Dies ist nützlich, wenn Sie entweder benutzerdefinierte Versionen vorhandener Softwarepakete erstellen oder neue Apps auf Docker portieren möchten.

Erstellen Sie dazu zunächst einen Ordner in Ihrem Home-Verzeichnis für Ihre Build-Dateien:

Erstellen Sie mit Ihrem bevorzugten Texteditor eine neue Docker-Datei:

Fügen Sie die folgenden Codezeilen in Ihr neues Dockerfile ein:

Ein Terminal, das eine Beispiel-Dockerfile-Konfiguration für ein benutzerdefiniertes Nginx-Image zeigt.

Erstellen Sie einen Ordner „sample-site“ und kopieren Sie ihn hinein oder erstellen Sie eine einfache HTML-Site:

Speichern Sie Ihr neues Dockerfile und führen Sie dann den folgenden Befehl aus, um es auf Ihrem System zu erstellen:

Überprüfen Sie, ob Ihr neues Docker-Image in Ihrer Liste der Docker-Images vorhanden ist:

Ein Terminal, das das benutzerdefinierte Image hervorhebt, das vom Unterbefehl „Build“ generiert wurde.

Erstellen eines neuen Images unter Verwendung vorhandener Container

Das Docker-CLI-Tool kann auch neue Images aus den Containern erstellen, die derzeit in Ihrem System vorhanden sind. Dies ist nützlich, wenn Sie bereits in einer vorhandenen Umgebung arbeiten und aus Ihrem aktuellen Setup ein neues Image erstellen möchten.

Stellen Sie dazu sicher, dass Ihr Container derzeit nicht ausgeführt wird:

Führen Sie den commitUnterbefehl gefolgt vom Namen Ihres Containers aus und geben Sie anschließend den Namen Ihres neuen Docker-Images an:

Ein Terminal, das den Unterbefehl „Commit“ zeigt, der ein neues Image aus einem Docker-Container erstellt.

Bestätigen Sie, dass Ihr neues Docker-Image in Ihrem System ist, indem Sie ausführen docker images.

Ein Terminal, das das neue benutzerdefinierte Image aus einem im System installierten Docker-Container hervorhebt.

So führen Sie einen Docker-Container aus und stoppen ihn

Wenn Ihr Docker-Image fertig ist, können Sie es jetzt verwenden, um Ihren ersten Container zu erstellen. Verwenden Sie dazu den runUnterbefehl gefolgt vom Namen des Images, das Sie ausführen möchten:

Dies funktioniert zwar für die Ausführung Ihres ersten Docker-Containers, aber wenn Sie es auf diese Weise tun, wird Ihre aktuelle Shell-Sitzung übernommen. Um Ihren Container im Hintergrund auszuführen, fügen Sie das -dFlag nach dem runUnterbefehl an:

Der runUnterbefehl kann auch eine Reihe zusätzlicher Flags enthalten, die das Verhalten Ihres neuen Docker-Containers ändern können. Mit dem --nameFlag können Sie Ihrem Container beispielsweise einen anpassbaren Namen geben:

Andererseits können Sie das --publishFlag verwenden, um den Netzwerkport umzuleiten, über den Sie auf Ihren Docker-Container zugreifen können. Dies ist vor allem dann nützlich, wenn Sie nicht möchten, dass Ihr Container einen privilegierten Port übernimmt:

Ein Screenshot, der einen Webbrowser zeigt, der die Website öffnet, die vom benutzerdefinierten Docker-Container gehostet wird.

Sie können alle aktuell ausgeführten Docker-Container in Ihrem System überprüfen, indem Sie den folgenden Befehl ausführen:

Ähnlich wie der runUnterbefehl pskann auch dieser eine Handvoll Flags aufnehmen, die sein Verhalten ändern. Um beispielsweise die Container anzuzeigen, die derzeit nicht erreichbar sind, verwenden Sie das -aFlag:

Um einen laufenden Container auszuschalten, verwenden Sie den stopUnterbefehl, gefolgt von der Container-ID oder dem Namen Ihres Docker-Containers:

Ein Terminal, das den Vorgang des Herunterfahrens eines aktuell laufenden Docker-Containers zeigt.

Sie können jeden Container, den Sie angehalten haben, neu starten, indem Sie den startUnterbefehl erneut ausführen:

Anhalten und Beenden eines Docker-Containers

Mit dem Docker-CLI-Tool können Sie auch einen laufenden Containerprozess vorübergehend anhalten und beenden. Dies kann nützlich sein, wenn Sie ein Problem mit Ihrem Docker-Setup beheben und einen fehlerhaften Container isolieren oder stoppen möchten.

Beginnen Sie mit der Ausführung docker ps, um alle laufenden Container im System aufzulisten.

Suchen Sie entweder die ID oder den Namen des Containers, den Sie verwalten möchten.

Ein Terminal, das den benutzerdefinierten Docker-Container hervorhebt, der aktuell im System ausgeführt wird.

Führen Sie den pauseUnterbefehl gefolgt vom Namen des Containers aus, den Sie vorübergehend anhalten möchten:

Sie können einen angehaltenen Prozess fortsetzen, indem Sie den unpausefolgenden Unterbefehl ausführen:

Um einen fehlerhaften Prozess zu stoppen, führen Sie den killUnterbefehl gefolgt vom Namen Ihres Containers aus:

So überprüfen Sie einen Docker-Container

Die Kenntnis der komplizierten Details Ihres Containers ist ein wesentlicher Bestandteil der Aufrechterhaltung der Gesundheit Ihres Docker-Stacks. So können Sie potenzielle Probleme schnell erkennen und es kann den Unterschied ausmachen, ob Sie Ihre gesamte Bereitstellung reparieren oder neu durchführen müssen.

Um eine Übersicht über Ihren Docker-Container anzuzeigen, führen Sie den inspectUnterbefehl aus:

Dadurch wird eine lange JSON-Zeichenfolge gedruckt, die den aktuellen Status Ihres gesamten Containers beschreibt. Sie können dies eingrenzen, indem Sie die Ausgabe entweder an jq weiterleiten oder das integrierte -fFlag verwenden, gefolgt von dem JSON-Objekt, das Sie drucken möchten:

Ein Terminal, das das Filterflag für den Unterbefehl „Inspect“ in einem laufenden Docker-Container anzeigt.

Drucken von Containerprotokollen an das Terminal

Darüber hinaus können Sie auch die Protokolle aller aktuell ausgeführten Docker-Container verfolgen und ausdrucken. Dies kann nützlich sein, wenn Sie überprüfen möchten, wie sich Ihr Dienst derzeit verhält, und sich die Ausgabe ansehen möchten, die er an STDOUT zurückgibt.

Führen Sie dazu den Unterbefehl „logs“ gefolgt vom Namen Ihres Containers aus:

Sie können auch den Unterbefehl logs mit dem --followFlag ausführen, um ein fortlaufendes Protokoll Ihres Docker-Dienstes zu erstellen. Dies ist vergleichbar mit der Ausführung tail -fam Ende einer UNIX-Pipe:

Ein Terminal, das die fortlaufenden Protokolle für einen Docker-Container anzeigt.

Ähnlich wie bei anderen Unterbefehlen können Sie auch verschiedene Flags hinzufügen, um die Ausgabe des Protokolls Ihres Docker-Containers anzupassen. Das Flag fügt beispielsweise --timestampseinen detaillierten Zeitstempel für jede Nachricht hinzu, die Ihr Container an seinen STDOUT sendet:

Das --detailsFlag druckt sogar die Umgebungsvariablen, die Sie für Ihren aktuellen Docker-Container festgelegt haben. Gleichzeitig --sincekönnen Sie mit dem Flag nur Protokolle anzeigen, die nach einem bestimmten Zeitpunkt erstellt wurden:

Ein Terminal, das eine detailliertere Protokollausgabe eines aktuell ausgeführten Docker-Containers anzeigt.

So passen Sie einen Docker-Container an

Im Kern ist ein Docker-Container eine kleine, abgespeckte Version von Linux, die auf Ihrem aktuellen System läuft. Das bedeutet, dass es ähnlich wie bei einer virtuellen Maschine möglich ist, auf die Daten in Ihrem Container zuzugreifen und diese abzurufen.

Um eine lokale Datei von Ihrem Hostcomputer in den Container zu kopieren, führen Sie den cpUnterbefehl aus:

Manchmal müssen Sie auch in Container „einsteigen“, indem Sie darin eine Shell öffnen. Auf diese Weise können Sie Dateien bearbeiten, Binärdateien installieren und sie Ihren Anforderungen entsprechend anpassen:

Ein Terminal, das den Vorgang des Einfügens in die Root-Shell eines Containers zeigt.

Jetzt könnten Sie beispielsweise „index.html“ bearbeiten und darin eine Homepage für die Website erstellen.

Ein Terminal, das eine HTML-Datei zeigt, die in die Root-Shell eines Docker-Containers kopiert wurde.

Um die Container-Shell zu verlassen, drücken Sie entweder Ctrl+ Doder führen Sie es exitim Terminal aus.

Ein Terminal, das den Exit-Befehl aus der Root-Shell des Docker-Containers hervorhebt.

So löschen Sie Docker-Container und -Images

Das Entfernen nicht verwendeter Docker-Container und -Images ist ein wichtiger Teil der allgemeinen Ordnung Ihrer Bereitstellung. Auf diese Weise können Sie unnötige Dateien von Ihrem Server entfernen und auf lange Sicht Speicherplatz sparen.

Bevor Sie einen Container löschen, stellen Sie sicher, dass Sie ihn zuerst gestoppt haben:

Entfernen Sie nun den Container mit dem rmUnterbefehl:

Bestätigen Sie, dass Sie Ihren alten Docker-Container ordnungsgemäß gelöscht haben, indem Sie ausführen docker ps -a.

Ein Terminal, das alle verfügbaren Docker-Container anzeigt, einschließlich der derzeit nicht verfügbaren.

Löschen Sie Ihr ursprüngliches Docker-Image aus Ihrer Docker-Bereitstellung:

Ein Terminal, das die Ausgabe des Löschens eines Docker-Images aus dem System hervorhebt.

Überprüfen Sie, ob Sie Ihr ursprüngliches Docker-Image ordnungsgemäß entfernt haben, indem Sie ausführen docker images.

Ein Terminal, das die aktualisierte Docker-Image-Liste anzeigt.

Das Erstellen, Verwalten und Entfernen von Docker-Containern ist nur einer der vielen Dinge, die Sie mit Ihrem Linux-Server tun können.

Bildnachweis: Shamin Haky via Unsplash . Alle Änderungen und Screenshots von Ramces Red.

Schreibe einen Kommentar

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