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?
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
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 .)
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.
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