web-dev-qa-db-ger.com

Dockerfile: Build and Run

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?

40
Twinkle

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
59

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 .)
68
starthal

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.

1
tavlima

Windows PC

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
0
Rob