Ist es möglich, Dockerfile mithilfe eines einzigen Befehls zu erstellen und auszuführen, gibt es einen Befehl docker build
zum Erstellen einer Dockerfile und docker run -it
zum Ausführen des Befehls.
Gibt es eine Kombination dieser beiden Befehle, um das Erstellen und Ausführen mit nur einem Befehl zu erleichtern?
Nein, es gibt keinen einzigen Befehl. Wenn Sie Ihr Bild jedoch beim Erstellen mit einem Tag versehen, wird es einfacher ausgeführt:
docker build -t foo . && docker run -it foo
Wenn Sie das Tagging vermeiden möchten, gibt docker build -q
nur den endgültigen Image-Hash aus, den Sie als Argument für docker run
verwenden können:
docker run -it $(docker build -q .)
Fügen Sie --rm
zu docker run
hinzu, wenn der Container beim Beenden automatisch entfernt werden soll.
docker run --rm -it $(docker build -q .)
Wenn Sie Makefile verwenden, finde ich dieses Snippet nützlich:
build:
@docker build . | tee .buildlog
bash: build
@docker run --rm -it $(Shell grep "Successfully built" .buildlog | cut -d ' ' -f 3) /bin/bash
Sie brauchen kein Tagging, wie in @ jonathon-reinhart answer, aber Sie erhalten auch die Build-Ausgabe.
Erstellen Sie eine run.bat
-Datei. Dann fügen Sie in der Datei Folgendes hinzu:
docker build -t foo .
docker run -it foo
So führen Sie die Datei mit Powershell oder cmd aus:
./run.bat