Starten Sie das Bash-Terminal im neuen Docker-Container
- Verwendung von die interaktive Bash-Shell
-
Verwendung von den Befehl
docker exec
-
Verwendung von den Befehl
docker attach
Docker-Container sind die Standardeinheit zum Packen aller Abhängigkeiten unserer Anwendungen, sodass wir sie problemlos in jeder Umgebung ausführen können. Container sind in letzter Zeit sehr beliebt geworden, und die meisten Entwickler verlassen sich jetzt stark auf Container, um ihre Anwendungen und Abhängigkeiten zu verwalten.
Docker bietet uns mehrere Möglichkeiten, auf eine Shell-Instanz zuzugreifen, indem wir ein Bash-Terminal in einem Docker-Container starten. Dies ist besonders nützlich, wenn Sie einige Befehle im Docker-Container ausführen.
Außerdem kann dies auch aus Debugging-Gründen sein, oder vielleicht möchten Sie überprüfen, ob alles richtig konfiguriert ist. In diesem Artikel werden verschiedene Methoden untersucht, die wir verwenden können, um Container auszuführen und Container, die nicht ausgeführt werden.
Verwendung von die interaktive Bash-Shell
Bash ist ein bei Linux-Systemen üblicher Befehlsprozessor, der es Benutzern ermöglicht, Befehle einzugeben, die Aktionen auslösen. Wenn Sie mit Unix-basierten Systemen oder der WSL interagiert haben, können Sie über Bash mit verschiedenen Befehlen interagieren.
Ebenso können wir auch innerhalb eines Docker-Containers direkt auf das Linux-Terminal zugreifen und Befehle ausführen, wie wir es mit der normalen Linux-Bash tun würden. Ein Vorteil dieser Methode ist, dass wir dies mit einem nicht laufenden Container tun können, im Gegensatz zu anderen Befehlen wie dem Befehl docker exec
.
Wie unten gezeigt, verwenden wir das offizielle rabbitmq
-Image aus der Docker-Registrierung, um einen Docker-Container zu erstellen und direkt auf die Bash innerhalb des Containers zuzugreifen. Sie können dies mit jedem anderen Befehl tun; Sie möchten sicherstellen, dass Sie das Bild im Voraus haben.
docker pull rabbitmq
docker images
Nachdem wir nun die Bilder haben, können wir den Docker-Container interaktiv erstellen. Das bedeutet, dass wir Befehle innerhalb des Docker-Containers ausführen können, während er noch läuft, wie unten gezeigt.
$ docker run -it rabbitmq bash
Ausgabe:
root@f418a3286aae:/#
Wie Sie sehen können, befinden wir uns jetzt im Docker-Container, und wir haben es erfolgreich geschafft, die Bash im neuen Container auszuführen. Jetzt können wir unsere Befehle ausführen, als ob wir mit dem echten Terminal arbeiten würden.
Beispielsweise können wir die Dateien und Verzeichnisse in diesem Container auflisten, wie unten gezeigt.
root@f418a3286aae:/# ls
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt plugins proc root run sbin srv sys tmp usr var
root@f418a3286aae:/#
Verwendung von den Befehl docker exec
Alternativ können wir auch den Befehl docker exec
verwenden, um die Bash in einem neuen Docker-Container auszuführen. Im Gegensatz zur früheren Methode erfordert dieser Befehl jedoch, dass der Container bereits ausgeführt wird. Andernfalls funktioniert der Befehl nicht.
Verwenden Sie den Befehl docker ps -a
, um zu bestätigen, dass unser Container ausgeführt wird. Wenn der Container, den Sie verwenden möchten, nicht ausgeführt wird, können Sie ihn mit dem Befehl docker start
gefolgt von der Container-ID oder dem Namen starten.
docker ps
Wir werden den Befehl docker exec
zusammen mit dem Tag -it
verwenden. Der Befehl exec
ermöglicht es uns, einen Befehl in den laufenden Container auszuführen, während das Tag -it
es uns ermöglicht, den Container interaktiv zu öffnen.
Wir können das wie unten gezeigt ausführen.
$ docker exec -it f418a3286aae bash
Ausgabe:
root@f418a3286aae:/# ls
bin boot dev etc home isaac lib lib32 lib64 libx32 media mnt opt plugins proc root run sbin srv sys tmp tonyloi usr var
Nachdem wir Bash erfolgreich in diesem Docker-Container gestartet haben, können wir verschiedene Befehle aus dem Container heraus ausführen. Wir können alternativ sh
für Container verwenden, die keine Bash haben.
Dies ist auch ein Befehl, der eine einfache Shell-Eingabeaufforderung öffnet, an der wir unsere Befehle innerhalb des Containers ausführen können.
$ docker exec -it f418a3286aae sh
Ausgabe:
# ls
bin boot dev etc home isaac isaactonyloi lib lib32 lib64 libx32 media mnt opt plugins proc root run sbin srv sys tmp tonyloi usr var
Verwendung von den Befehl docker attach
Wir können Bash auch in einem laufenden Docker-Container mit dem Befehl docker attach
starten. Auf diese Weise können wir die lokalen Standard-Eingabe-, Ausgabe- und Fehlerströme an einen laufenden Container anhängen, indem wir die ID des Containers verwenden.
Wir können dann verschiedene Befehle ausführen, Eingaben akzeptieren und den angegebenen Container debuggen. Wir brauchen einen laufenden Container, um unsere Ausgabe-, Eingabe- und Fehlerströme anzuhängen.
Wir können dies mit dem Containernamen oder der ID wie unten gezeigt implementieren.
Code:
$ docker container attach f418a3286aae
Ausgabe:
root@f418a3286aae:/# ls
bin boot dev etc home isaac isaactonyloi lib lib32 lib64 libx32 media mnt opt plugins proc root run sbin srv sys tmp tonyloi usr var
root@f418a3286aae:/#
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn