Est-il possible de créer une image à partir de Dockerfile et de l'exécuter avec une seule commande?
Il existe une commande docker build
pour créer un Dockerfile et docker run -it
exécuter l'image.
Existe-t-il une combinaison de ces deux commandes pour faciliter la création et l'exécution avec une seule commande?
docker
dockerfile
Scintillement
la source
la source
Réponses:
Non, il n'y a pas de commande unique. Mais si vous marquez votre image au fur et à mesure que vous la construisez, elle sera plus facile à exécuter:
la source
docker rmi foo
.Si vous voulez éviter le balisage,
docker build -q
ne produit rien d'autre que le hachage final de l'image , que vous pouvez utiliser comme argument pourdocker run
:Et ajouter
--rm
àdocker run
si vous voulez que le conteneur automatiquement supprimé quand il sort.la source
docker build
: /-q
option. Pour le rendre silencieux, pour afficher uniquement la balise générée automatiquement. Et c'est tout. N'hésitez pas à transformer ce stdin comme vous le souhaitez.docker build . | tee /dev/tty | tail -n1 | cut -d' ' -f3 | xargs -I{} docker run --rm {}
Si vous utilisez Makefile, je trouve cet extrait utile:
Vous n'avez pas besoin de balisage, comme dans @ jonathon-reinhart answer, mais vous obtenez également la sortie de construction.
la source
J'utilise docker-compose pour cette commodité, car la plupart des applications que je construis parlent tôt ou tard à des services externes, donc si je vais l'utiliser quand même, pourquoi ne pas l'utiliser dès le début. Ayez simplement docker-compose.yml comme:
puis exécutez simplement l'application avec:
Il reconstruira l'image ou réutilisera le conteneur en fonction des modifications apportées à la définition de l'image.
la source
PC Windows
Créez un
run.bat
fichier. Ensuite, dans le fichier, ajoutez ceci:Pour exécuter le fichier à l'aide de PowerShell ou cmd, procédez comme suit:
la source
docker-build-and-run
J'ai créé une petite commande d'aide pour la construction et l'exécution, en une seule commande. Sur Linux ou Mac, vous pouvez l'ajouter à votre
~/.bash_profile
pour le rendre disponible dans le terminal.Usage:
Exemples:
Le scénario:
Ajoutez-le à un
.sh
fichier ou ajoutez-le à votre~/.bash_profile
:la source
Vous pouvez également faire
docker build
et diriger le nom de l'image vers laquelle il sortdocker run
:docker build
vous donnera un texte sur plusieurs lignes... Successfully built 18e77bc0d83a
tail -n1
' '
et obtenir3
rd mot aveccut -d' ' -f3
run
avecxargs -I{} docker run {}
la source
| tee /dev/tty
aprèsdocker build .
pour obtenir la sortie complète!Pour tous ceux qui recherchent une solution réutilisable, vous pouvez installer ce plugin docker que j'ai créé: https://github.com/stasmihailov/docker-script
Ensuite, vous pouvez créer et exécuter un Dockerfile comme suit:
la source