Container ausführen und verwalten

DockerBeginner
Jetzt üben

Einführung

Container verpacken einen Prozess zusammen mit seiner Dateisystemansicht und den Laufzeiteinstellungen. Eine Container-Engine wie Docker kann Images erstellen, Container aus diesen Images starten, Speicher einbinden, Protokolle anzeigen, Befehle innerhalb eines laufenden Containers ausführen und Container entfernen, wenn sie nicht mehr benötigt werden.

In diesem Lab verwenden Sie die Docker-Engine, die bereits in der LabEx-Umgebung verfügbar ist. Um öffentliche Image-Downloads zu vermeiden, erstellt das Lab ein kleines Übungs-Image aus einem zwischengespeicherten lokalen Basis-Image. Sie werden die Engine untersuchen, ein Image erstellen, einen benannten Container mit einem Bind Mount ausführen, Protokolle und generierte Dateien prüfen, einen Befehl im Container ausführen und den laufenden Container anschließend bereinigen.

Die Container-Engine untersuchen

In diesem Schritt bestätigen Sie, dass Docker verfügbar ist, und untersuchen die lokalen Images. Ein Container-Workflow beginnt damit, zu wissen, welche Engine Sie verwenden und welche Images bereits vorhanden sind. Dieses Lab vermeidet öffentliche Downloads durch die Verwendung eines zwischengespeicherten Basis-Images.

Wechseln Sie in das Projektverzeichnis.

cd /home/labex/project

Überprüfen Sie die Docker-Version.

docker --version

Listen Sie die lokalen Images auf.

docker image ls

Sie sollten gcr.io/k8s-minikube/kicbase:v0.0.37 sehen, das vom Lab als lokale Basis für den Build-Prozess verwendet wird.

Ein lokales Image prüfen und erstellen

In diesem Schritt untersuchen Sie das vorbereitete Dockerfile und erstellen ein lokales Image. Ein Image ist eine wiederverwendbare Vorlage für Dateisysteme und Metadaten. Ein Container ist eine laufende Instanz, die aus einem Image erstellt wurde.

Zeigen Sie das Dockerfile an. Die ENTRYPOINT-Zeile ist wichtig, da das zwischengespeicherte Basis-Image einen eigenen Standard-Einstiegspunkt hat. Dieses Lab setzt einen neuen Einstiegspunkt, damit der Container das Übungsskript direkt startet.

cat Dockerfile

Erstellen Sie das Image und versehen Sie es mit dem Tag lfcs-container-demo:1.0. Die Option -t weist einen Namen und ein Tag zu, und der abschließende Punkt . weist Docker an, das aktuelle Verzeichnis als Build-Kontext zu verwenden.

docker build -t lfcs-container-demo:1.0 .

Überprüfen Sie das Image nach erfolgreichem Build.

docker image ls lfcs-container-demo:1.0

Einen benannten Container ausführen

In diesem Schritt führen Sie das Image als detached Container aus. "Detached" bedeutet, dass der Container im Hintergrund läuft. Der Container erhält den Namen lfcs-demo, und ein Bind Mount verbindet /home/labex/project/container-data auf dem Host mit /data innerhalb des Containers.

Starten Sie den Container.

docker run -d --name lfcs-demo -v /home/labex/project/container-data:/data lfcs-container-demo:1.0

Zeigen Sie die Container-ID an.

docker ps -q --filter name=lfcs-demo

Listen Sie laufende Container auf und suchen Sie nach lfcs-demo.

docker ps --filter name=lfcs-demo

Protokolle untersuchen und einen Befehl ausführen

In diesem Schritt untersuchen Sie den laufenden Container. Protokolle zeigen, was der containerisierte Prozess ausgibt. Ein Bind Mount ermöglicht es Ihnen zu überprüfen, ob der Container Daten zurück auf den Host geschrieben hat. docker exec führt einen Befehl innerhalb des laufenden Containers aus.

Geben Sie dem Container einen Moment Zeit, um Protokolle zu schreiben.

sleep 3

Lesen Sie die aktuellen Container-Protokolle.

docker logs --tail 5 lfcs-demo

Überprüfen Sie die Datei, die über den Bind Mount geschrieben wurde.

tail -n 5 container-data/container-output.log

Führen Sie einen Befehl innerhalb des Containers aus, um zu bestätigen, dass die eingebundenen Daten von innen sichtbar sind.

docker exec lfcs-demo sh -c 'test -f /data/container-output.log && echo container-data-visible'

Den Container stoppen und entfernen

In diesem Schritt bereinigen Sie den laufenden Container. Das Stoppen eines Containers beendet dessen Prozess. Das Entfernen eines gestoppten Containers löscht das Container-Objekt, entfernt jedoch nicht das von Ihnen erstellte Image.

Stoppen Sie den Container.

docker stop lfcs-demo

Entfernen Sie den gestoppten Container.

docker rm lfcs-demo

Überprüfen Sie die Bereinigung. docker ps -a listet alle Container auf, einschließlich der gestoppten. Nach dem Entfernen sollte lfcs-demo nicht mehr erscheinen.

docker ps -a --filter name=lfcs-demo

Zusammenfassung

Sie haben einen vollständigen grundlegenden Docker-Workflow geübt: die Engine untersuchen, ein zwischengespeichertes lokales Basis-Image verwenden, ein getaggtes Image erstellen, einen benannten detached Container mit einem Bind Mount ausführen, Protokolle prüfen, einen Befehl im Container ausführen sowie den Container stoppen und entfernen. Dies sind die grundlegenden Container-Operationen, die Sie beherrschen sollten, bevor Sie sich mit tiefergehenden Engine-Konfigurationen oder Orchestrierungsthemen befassen.