web-dev-qa-db-fra.com

Dockerfile: Construire et exécuter

Est-il possible de créer et d'exécuter Dockerfile à l'aide d'une seule commande, car il existe une seule commande docker build pour créer un fichier Dockerfile et docker run -it pour exécuter la commande. 

Existe-t-il une combinaison de ces deux commandes pour faciliter la construction et l’exécution avec une seule commande?

40
Twinkle

Non, il n'y a pas de commande unique. Mais si vous marquez votre image au fur et à mesure que vous la construisez, il sera plus facile de lancer

docker build -t foo . && docker run -it foo
59
Jonathon Reinhart

Si vous souhaitez éviter le marquage, docker build -q ne génère que le hachage de l'image finale, que vous pouvez utiliser comme argument pour docker run:

docker run -it $(docker build -q .)

Et ajoutez --rm à docker run si vous souhaitez que le conteneur soit automatiquement supprimé lorsqu'il se ferme.

docker run --rm -it $(docker build -q .)
68
starthal

Si vous utilisez Makefile, je trouve cet extrait utile:

build:
    @docker build . | tee .buildlog

bash: build
    @docker run --rm -it $(Shell grep "Successfully built" .buildlog | cut -d ' ' -f 3) /bin/bash

Vous n'avez pas besoin de marquage, comme dans @ jonathon-reinhart, mais vous obtenez également le résultat de la construction.

1
tavlima

PC sous Windows

Créez un fichier run.bat. Ensuite, dans le fichier, ajoutez ceci:

docker build -t foo . 
docker run -it foo

Pour exécuter le fichier en utilisant powershell ou cmd, procédez comme suit:

./run.bat
0
Rob