Ist es möglich, ein Image aus Dockerfile zu erstellen und es mit einem einzigen Befehl auszuführen?
Es gibt einen Befehl docker build
zum Erstellen einer Docker-Datei und docker run -it
zum Ausführen des Images.
Gibt es eine Kombination dieser beiden Befehle, um das Erstellen und Ausführen mit nur einem Befehl zu vereinfachen?
docker
dockerfile
Funkeln
quelle
quelle
Antworten:
Nein, es gibt keinen einzigen Befehl. Wenn Sie Ihr Image jedoch beim Erstellen mit Tags versehen, ist die Ausführung einfacher:
quelle
docker rmi foo
.Wenn Sie das Taggen vermeiden möchten, wird
docker build -q
nur der endgültige Bild-Hash ausgegeben , den Sie als Argument für Folgendes verwenden könnendocker run
:Und fügen Sie hinzu
--rm
,docker run
wenn der Container beim Beenden automatisch entfernt werden soll.quelle
docker build
: /-q
Option. Um es leise zu machen, geben Sie nur das automatisch generierte Tag aus. Und das ist es. Fühlen Sie sich frei, dieses stdin zu verwandeln, wie Sie möchten.docker build . | tee /dev/tty | tail -n1 | cut -d' ' -f3 | xargs -I{} docker run --rm {}
Wenn Sie Makefile verwenden, finde ich dieses Snippet nützlich:
Sie müssen nicht markiert werden, wie in der Antwort von @ jonathon-reinhart, aber Sie erhalten auch die Build-Ausgabe.
quelle
Ich verwende Docker-Compose für diese Bequemlichkeit, da die meisten Apps, die ich erstelle, früher oder später mit externen Diensten sprechen. Wenn ich es also trotzdem verwenden werde, warum nicht von Anfang an. Haben Sie einfach docker-compose.yml als:
und dann einfach die App ausführen mit:
Das Image wird neu erstellt oder der Container wird wiederverwendet, je nachdem, ob Änderungen an der Image-Definition vorgenommen wurden.
quelle
Windows PC
Machen Sie eine
run.bat
Datei. Fügen Sie dann in der Datei Folgendes hinzu:Gehen Sie folgendermaßen vor, um die Datei mit Powershell oder Cmd auszuführen:
quelle
docker-build-and-run
Ich habe einen kleinen Hilfsbefehl zum Erstellen und Ausführen in einem einzigen Befehl erstellt. Unter Linux oder Mac können Sie dies zu Ihrem hinzufügen
~/.bash_profile
, um es im Terminal verfügbar zu machen.Verwendung:
Beispiele:
Das Drehbuch:
Fügen Sie dies einer
.sh
Datei hinzu oder fügen Sie es Ihrer hinzu~/.bash_profile
:quelle
Sie können auch den Bildnamen
docker build
ausführen und weiterleiten, an den er ausgegeben wirddocker run
:docker build
erhalten Sie mehrzeiligen Text... Successfully built 18e77bc0d83a
tail -n1
' '
und3
rd Wort mit bekommencut -d' ' -f3
run
mitxargs -I{} docker run {}
quelle
| tee /dev/tty
nachdemdocker build .
die volle Leistung zu erhalten!Für alle, die nach einer wiederverwendbaren Lösung suchen, können Sie dieses Docker-Plugin installieren, das ich erstellt habe: https://github.com/stasmihailov/docker-script
Dann können Sie eine Docker-Datei wie folgt erstellen und ausführen:
quelle