Anhängen an einen laufenden Container und Beobachten seiner Ausgabe
Im vorherigen Schritt haben wir einen Container im Detached-Modus gestartet. Obwohl der Container einen einfachen Befehl ausführte und wahrscheinlich schnell beendet wurde, können wir uns dennoch anhängen, um seine Ausgabe zu sehen. Der Befehl docker attach
ermöglicht es Ihnen, sich mit den Standard-Ein-/Ausgabe- und Fehlerströmen eines laufenden oder beendeten Containers zu verbinden.
Zuerst holen wir uns die ID des Containers aus dem vorherigen Schritt. Verwenden Sie den Befehl docker ps -a
und suchen Sie nach dem Container, der den echo
-Befehl ausführte. Kopieren Sie die Container-ID.
docker ps -a
Verwenden Sie nun den Befehl docker attach
gefolgt von der Container-ID, um sich an den Container anzuhängen.
docker attach <container_id>
Ersetzen Sie <container_id>
mit der tatsächlichen ID Ihres Containers. Da der Container einen einfachen echo
-Befehl ausführte und beendet wurde, sehen Sie möglicherweise keine sofortige Ausgabe oder die Ausgabe "Hello from detached container!", falls diese noch gepuffert ist. Der attach
-Befehl verbindet Sie mit den Strömen des Containers. Da der Container seine Aufgabe bereits abgeschlossen hat, wird der attach
-Befehl wahrscheinlich sofort nach der Verbindung beendet.
Um das Anhängen an einen länger laufenden Container zu demonstrieren, starten wir einen neuen Detached-Container, der einen Befehl ausführt, der ihn für einige Sekunden aktiv hält. Wir verwenden wieder das ubuntu
-Image und führen sleep 10
aus.
docker run -d ubuntu sleep 10
Holen Sie sich die ID dieses neuen Containers mit docker ps
. Diesmal sollte der Container im Status Up
sein.
docker ps
Hängen Sie sich nun mit seiner ID an diesen laufenden Container an.
docker attach <new_container_id>
Ersetzen Sie <new_container_id>
mit der ID des Containers, der sleep 10
ausführt. Sie werden mit den Standardströmen des Containers verbunden. Da der sleep
-Befehl keine Ausgabe erzeugt, werden Sie nichts sehen. Das Terminal scheint zu warten. Der Container läuft für 10 Sekunden und beendet sich dann. Wenn der Container beendet wird, wird auch der attach
-Befehl beendet und Sie kehren zu Ihrer Terminal-Eingabeaufforderung zurück.