Lorsque vous créez une image Docker que vous utilisez normalement docker build .
.
Mais j'ai trouvé que vous pouvez spécifier --pull
, donc toute la commande ressemblerait àdocker build --pull .
Je ne suis pas sûr de l'objectif de --pull
. La documentation officielle de Dockers dit "Essayez toujours de tirer une version plus récente de l'image", et je ne sais pas ce que cela signifie dans ce contexte.
Vous utilisez docker build
pour créer une nouvelle image et éventuellement la publier quelque part dans un registre de conteneurs. Pourquoi voudriez-vous retirer quelque chose qui n'existe pas encore?
Je m'attendrais à ce que quelque chose d'aussi "simple" soit facilement trouvé sur le Web, mais personne ne semble avoir une question similaire à celle-ci. Le seul vrai succès sur Google se réfère aux documents officiels de Dockers, que je (comme indiqué ci-dessus) ne comprends pas.
Merci de votre aide!
ubuntu:bionic
image, car elle n'a (évidemment) pas de version attachée, mais sera toujours différente chaque fois qu'elle publiera une nouvelle image. Tout a du sens. Merci!ubuntu:0.1.0
par exemple, et ils ont publié une nouvelle image mais avec la même version, c'estubuntu:0.1.0
-à- dire - cela signifie-docker build --pull
t-il de télécharger à nouveau la nouvelle image entière? (ce qui serait ce que la plupart des gens préfèrent, je suppose)Réponse simple.
docker build
est utilisé pour construire à partir d'un dockerfile local.docker pull
est utilisé pour tirer du docker hub. Si vous utilisez la génération Docker sans fichier Docker, cela génère une erreur.Lorsque vous spécifiez
--pull
ou:latest
docker essaiera de télécharger la dernière version (le cas échéant)Fondamentalement, si vous ajoutez --pull, il essaiera d'extraire la dernière version à chaque exécution.
la source
Docker permet de passer le
--pull
drapeaudocker build
, par exempledocker build . --pull -t myimage
. Il s'agit de la méthode recommandée pour garantir que la génération utilise toujours la dernière image de conteneur malgré la version disponible localement. Cependant, un point supplémentaire mérite d'être mentionné:Pour vous assurer que votre build est complètement reconstruit, y compris la vérification de l'image de base pour les mises à jour, utilisez les options suivantes lors de la construction:
--no-cache
- Cela forcera la reconstruction des couches déjà disponibles.La commande complète ressemblera donc à ceci:
docker build . --pull --no-cache --tag myimage:version
Les mêmes options sont disponibles pour
docker-compose
:docker-compose build --no-cache --pull
la source
--no-cache
. Si l'image de base est mise à jour (et--pull
obtient une nouvelle version) cela invalide automatiquement le cache; de même si vousCOPY
code différent qui invalidera le cache. La seule chose que cela affectera généralement, c'est que si vous faites quelque chose commeapt-get install
un package hébergé sur le réseau, auquel cas il le--no-cache
fera rechercher une version plus récente même si l'image de base n'a pas été mise à jour.