Docker Schnellstart – Docker Run

Wir machen gute Fortschritte!

In der letzten Lektion hast du das "Busybox" Image vom Docker-Hub auf deinen Computer (oder Server) gezogen. Lass uns nun einen Docker Container basierend auf diesem Image starten. Um das zu tun, benutzen wir den allmächtigen Befehl docker run.

docker run busybox

Wieso ist noch nichts "Sichtbares" passiert?

Hinter den Kulissen sind eine Menge Dinge passiert. Wenn du run aufrufst, findet der Docker Client das Image (in diesem Fall busybox), lädt den Container und führt dann einen Befehl in diesem Container aus.

Wenn wir docker run busybox ausführen, haben wir kein Kommando angegeben, also hat der Container gebootet, ein leeres Kommando ausgeführt und sich dann beendet.

Lass uns etwas Spannenderes ausprobieren. Gib folgenden Befehl in dein Terminal ein:

docker run busybox echo "Hallo Busybox"

Ausgabe:

Endlich sehen wir eine Ausgabe. In diesem Fall hat der Docker-Client den echo-Befehl in unserem Busybox-Container ausgeführt und ihn dann beendet. Wenn du es bemerkt hast, ist das alles ziemlich schnell passiert. Stell dir vor, du startest eine virtuelle Maschine, führst einen Befehl aus und beendest sie dann. Jetzt weißt du, warum man sagt, dass Container schnell sind!

docker ps

Ok, jetzt ist es an der Zeit, den Befehl docker ps zu sehen. Der Befehl docker ps zeigt dir alle Container an, die gerade laufen.

docker ps

Ausgabe:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Da derzeit keine Container laufen, sehen wir eine leere Zeile.

Versuchen wir eine nützlichere Variante: docker ps -a

docker ps -a

Ausgabe:

Was wir oben sehen, ist eine Liste aller Container, die wir ausgeführt haben. Beachte, dass die Spalte STATUS zeigt, dass diese Container vor ein paar Minuten beendet wurden.

docker run -it

Du fragst dich wahrscheinlich, ob es eine Möglichkeit gibt, mehr als nur einen Befehl in einem Container auszuführen. Lass uns das jetzt ausprobieren:

docker run -it busybox sh

Ausgabe:

Wenn wir den run-Befehl mit den -it Flags ausführen, werden wir mit einem interaktiven TTY im Container verbunden. Jetzt können wir so viele Befehle im Container ausführen, wie wir wollen. Nimm dir etwas Zeit, um deine Lieblingsbefehle auszuführen (z.B. ls oder uptime, wie im obigen Screenshot)

Achtung: Wenn du dich besonders abenteuerlustig fühlst, kannst du rm -rf bin im Container ausprobieren. Stelle sicher, dass du diesen Befehl im Container ausführst und nicht auf deinem Laptop/Desktop. Dies führt dazu, dass alle anderen Befehle wie ls oder uptime nicht mehr funktionieren. Sobald alles nicht mehr funktioniert, kannst du den Container verlassen (gib exit ein und drücke Enter) und ihn dann mit dem Befehl docker run -it busybox sh
wieder zu starten.

Da Docker jedes Mal einen neuen Container erstellt, sollte nun alles wieder funktionieren.

Fazit zu "docker run"

Damit ist der Rundgang durch den mächtigen Befehl docker run abgeschlossen, den du wahrscheinlich am häufigsten verwenden wirst. Es macht also Sinn, etwas Zeit damit zu verbringen, sich mit ihm vertraut zu machen. Um mehr über run zu erfahren, benutze docker run --help, um eine Liste aller Flags zu sehen, die es unterstützt. Im weiteren Verlauf werden wir noch ein paar weitere Varianten von docker run sehen.