Kombinieren Sie Build- und Run-Befehle in Docker

  1. Zweck der Befehle docker build und docker run
  2. Kombinieren Sie Docker-Befehle mit dem doppelten kaufmännischen Und-Operator (&&)
  3. Kombinieren Sie Docker-Befehle mithilfe der Befehlssubstitution
  4. Abschluss
Kombinieren Sie Build- und Run-Befehle in Docker

Wenn wir die Erstellung von Containern mit einem Dockerfile automatisieren, verwenden wir normalerweise die Befehle docker build und run. In der Regel kombinieren wir jedoch die meisten Befehle in nur einem Lauf, um das lokale Image-Repository zu entrümpeln.

Dieser Artikel behandelt die Kombination von Befehlen wie docker build und run in nur einer Zeile.

Zweck der Befehle docker build und docker run

Die gemeinsame Verwendung der Befehle docker build und docker run kann in mehreren Szenarien hilfreich sein. Wenn wir beispielsweise eine neue Anwendung entwickeln und diese schnell testen möchten, können Sie diese Befehle verwenden, um sie in einem Container zu erstellen und auszuführen.

Dies kann Ihnen Zeit sparen und das Testen Ihrer Anwendung erleichtern.

Der Befehl docker build liest die Anweisungen im Dockerfile und erstellt daraus das Docker-Image. Wenn wir unser Dockerfile bereits erstellt haben, können wir das Image mit dem Befehl docker run -it ausführen.

Dieser Befehl erstellt einen neuen Container aus dem Image und führt ihn im interaktiven Modus aus.

Dieser Modus bedeutet, dass wir mit dem Container interagieren und darin Befehle ausführen können. Obwohl wir diese separat ausführen können, gibt es ein paar Möglichkeiten, sie in nur einer Zeile auszuführen.

Kombinieren Sie Docker-Befehle mit dem doppelten kaufmännischen Und-Operator (&&)

Eine Möglichkeit, die Befehle docker build und docker run -it zu kombinieren, besteht darin, das Flag --rm mit dem Befehl docker run zu verwenden. Dieses Flag weist Docker an, den Container zu entfernen, wenn er automatisch beendet wird.

Dieses Flag bedeutet, dass wir die Befehle docker build und docker run in einer Zeile wie folgt ausführen können:

docker build -t my-image . && docker run --rm -it my-image

In diesem Beispiel ist my-image der Name des Docker-Images, das erstellt und ausgeführt wird. Der Punkt (.) am Ende des Befehls docker build zeigt an, dass sich das Dockerfile im aktuellen Verzeichnis befindet.

Sobald wir diesen Befehl ausführen, erstellt Docker das Image anhand der Anweisungen in der Dockerfile und führt das Image dann in einem neuen Container aus. Das Flag --rm sorgt dafür, dass wir den Container beim Beenden automatisch entfernen.

Kombinieren Sie Docker-Befehle mithilfe der Befehlssubstitution

Ein weiteres Beispiel für die Kombination der beiden Befehle ist die Verschachtelung mit dem Dollarzeichen ($)-Operator. Der Befehl sollte etwa so aussehen:

docker run --rm -it $(docker build -t my-image)

Die $(...)-Syntax wird als Befehlssubstitution bezeichnet. Wir verwenden die Befehlsersetzung, weil Docker die Ausgabe eines Befehls als Argument für einen anderen Befehl verwendet.

Im obigen Fall führt Docker zuerst den Befehl docker build -t my-image aus und verwendet die Ausgabe (die ID des neu erstellten Docker-Images) als Argument für den Befehl docker run. Durch die Verwendung der Substitution veranlasst Docker den Befehl docker run, das Docker-Image mit der vom Befehl docker build zurückgegebenen ID auszuführen.

Wenn wir eine Anwendung in einer Produktionsumgebung bereitstellen, können wir diese Methode außerdem verwenden, um das Docker-Image zu erstellen und auf dem Produktionsserver auszuführen. Dadurch kann sichergestellt werden, dass Ihre Anwendung in einer konsistenten Umgebung ausgeführt wird, und die Verwaltung und Wartung wird vereinfacht.

Abschluss

Insgesamt sind die Befehle docker build und docker run mächtige Werkzeuge zum Erstellen und Ausführen von Docker-Images. Durch die Kombination dieser Befehle können wir ein Docker-Image in nur einer Codezeile erstellen und ausführen, wodurch das Entwickeln, Testen und Bereitstellen Ihrer Anwendungen einfacher und schneller wird.

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn