So verwenden Sie Docker-Container

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.

Notiz: Beginnen Sie, indem Sie zuerst Docker auf Ihrem Linux-System installieren.

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, nach einem neuen Docker-Image zu suchen, ist die Verwendung des Unterbefehls „search“:

Sie können auch nach Paketen suchen auf der Docker-Hub Website, wenn Sie lieber Ihren Webbrowser verwenden möchten.

[enlazatom_show_links]

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

Bestätigen Sie mit dem Unterbefehl „images“, dass Sie Ihr neues Image ordnungsgemäß zu Ihrem System hinzugefügt haben:

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:

mkdir ~/mein-Docker-Image && cd ~/mein-Docker-Image

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

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

VON nginx KOPIEREN Beispielsite /usr/share/nginx/html

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

mkdir ./Beispielsite cp ~/index.html ./Beispielsite/

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

Docker-Build -t custom-nginx.

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

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:

Docker stoppe meinen HTTP-Server

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

Docker-Commit, mein HTTP-Server, mein neues Server-Image

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

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 Unterbefehl „run“, 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 Flag -d nach dem Unterbefehl „run“ an:

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

docker run -d --name=mein-http-server httpd

Andererseits können Sie das Flag --publish 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:

docker run -d --name=mein-http-server --publish 8080:80 httpd

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

Ähnlich wie der Unterbefehl „run“ kann auch ps eine Handvoll Flags annehmen, die sein Verhalten ändern. Um beispielsweise die Container anzuzeigen, die derzeit nicht erreichbar sind, verwenden Sie das Flag „-a“:

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

Docker stoppe meinen HTTP-Server

Sie können jeden Container, den Sie angehalten haben, neu starten, indem Sie den Unterbefehl „Start“ erneut ausführen:

Docker starte meinen HTTP-Server

Als Randnotiz: Lernen Sie die Grundlagen des Webhostings mit Docker, indem Sie eine einfache Website mit darkhttpd betreiben.

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 von Docker PS, um alle im System laufenden Container aufzulisten.

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

Führen Sie den Unterbefehl „pause“ gefolgt vom Namen des Containers aus, den Sie vorübergehend anhalten möchten:

Docker pausiert meinen HTTP-Server

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

Docker setzt meinen HTTP-Server fort

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

Docker beendet meinen HTTP-Server

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 Unterbefehl „inspect“ aus:

Docker untersuche meinen HTTP-Server

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 Flag -f verwenden, gefolgt von dem JSON-Objekt, das Sie drucken möchten:

docker inspect -f {{.Name}} mein-http-server

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:

Docker protokolliert meinen HTTP-Server

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

Docker-Protokolle – Folge meinem HTTP-Server

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

Docker-Protokolle --Zeitstempel mein-http-Server

Mit dem Flag --details können Sie sogar die Umgebungsvariablen drucken, die Sie für Ihren aktuellen Docker-Container festgelegt haben. Mit dem Flag --since können Sie dagegen nur Protokolle anzeigen, die nach einem bestimmten Zeitpunkt erstellt wurden:

Docker-Protokolle - Details - seit 8 Min. mein-http-Server

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 Unterbefehl cp aus:

docker cp ~/meine-Datei mein-http-server:/tmp

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:

docker exec -it mein-http-server /bin/bash

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

Um die Shell des Containers zu verlassen, drücken Sie entweder Strg + D oder führen Sie „exit“ im Terminal aus.

Gut zu wissen: Erfahren Sie, wie Sie einen vorhandenen Docker-Container auf ein neues System verschieben.

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:

Docker stoppe meinen HTTP-Server

Entfernen Sie nun den Container mit dem Unterbefehl rm:

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

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

Docker RMI Mein neues Server-Image

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

Das Erstellen, Verwalten und Entfernen von Docker-Containern ist nur ein Teil dessen, was Sie mit Ihrem Linux-Server tun können. Erkunden Sie die Welt der Linux-Systemadministration, indem Sie mit XPipe einen Server und einen Docker-Container-Hub hosten.

Shamin Haky über Unsplash. Alle Änderungen und Screenshots von Ramces Red.

Index
  1. So finden und ziehen Sie ein Docker-Image
    1. Erstellen eines neuen Images mit Dockerfiles
    2. Erstellen eines neuen Images unter Verwendung vorhandener Container
  2. So führen Sie einen Docker-Container aus und stoppen ihn
    1. Anhalten und Beenden eines Docker-Containers
  3. So überprüfen Sie einen Docker-Container
    1. Drucken von Containerprotokollen an das Terminal
  4. So passen Sie einen Docker-Container an
  5. So löschen Sie Docker-Container und -Images

Schreibe einen Kommentar

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

Go up