Comment créer nommé et dernière balise dans le Panneau?
Censés j'ai une image que je veux balise comme 0.10.24
(dans mon cas, c'est une image contenant Node.js 0.10.24). J'ai construit cette image à l'aide d'un Dockerfile et de l'exécution de docker build
et en fournissant une balise à l'aide de la -t
paramètre.
J'attends qu'un jour je vais avoir d'autres versions de cette image, j'ai donc reprise le processus, mais avec un autre nom de la balise.
Donc bon. Cela fonctionne très bien et parfait et tout est bien.
Mais, et c'est là que les problèmes commencent, j'ai aussi envie d'avoir toujours la dernière image tagged ad latest
de plus. Donc je suppose que j'ai besoin de donner deux noms pour la même image.
Comment dois-je faire? Ai-je vraiment besoin de ré-exécuter docker build
sur la même version exacte de nouveau, mais cette fois utiliser une autre balise, est est-il une meilleure solution?
- Question connexe: stackoverflow.com/questions/21928780/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez avoir plusieurs balises lors de la construction de l'image:
Référence: https://docs.docker.com/engine/reference/commandline/build/#tag-image-t
:latest
partie, qui est la valeur par défaut:docker build -t whenry/fedora-jboss -t whenry/fedora-jboss:v2.1 .
Une fois que vous avez votre image, vous pouvez utiliser
Construire et de la balise de l'image avec creack/node:dernière
Ajouter un nouveau tag
Vous pouvez utiliser et passer l'option-t de la partie à partir de construire
creack/node:latest
, vous pouvez ensuite le tag avecdocker tag creack/node:latest creack/node:0.10.24
REV=$(hg identify --num)
docker tag -f $ID creack/node:latest
afin de forcer le marquage avec la dernière (dans le cas d'une image précédente était déjà tard)-t creack/node
, vous l'image n'aura pas de nom (il apparaîtra comme <aucun>) de sorte que vous ne serez pas en mesure de le baliser avec les commandes suivantes.docker build
toujours les sorties de l'ID de l'image quand il est terminé. Donc il n'a pas besoin d'un nom (parce que vous êtes sur le point de "nom" (tag) il).docker build -t registry-ip:port/repository/name
balises image:latest
automatiquement. Ensuite, je balise avec une version particulière.docker tag 'registry-ip:port/repository/name' 'registry-ip:port/repository/name:v1.0'
Mais, si besoin, à les pousser à la fois de dépôt: j'ai courudocker push registry-ip:port/repository/name
sans spécifier les balises et il pousse les 2 images.Voici mon script bash
Vous pouvez ensuite supprimer les images marquées si vous reconstruite la même version avec
lien
ou
ou
Nettoyer commandes:
Docker 1.13 présente nettoyage des commandes. Pour supprimer tous les contenants, des images, des réseaux et des volumes:
ou individuellement:
awk '{print $3}'
fonctionne, mais pasawk "{print $3}"
donc la commande que j'utilise estdocker rmi $(docker images -a | grep "^<none>" | awk '{print $3}')
-f
option n'existe plus dansdocker tag
. L'utilisation est justedocker tag IMAGE[:TAG] IMAGE[:TAG]
docker push
aprèsdocker build & docker run
, ne vous poussez avec:latest
ou${VERSION}
?ID=$(docker build -t creack/node .)
ne fonctionne pas pour moi depuisID
contiennent la sortie de la compilation.DONC je suis en utilisant ce petit script BASH:
-q
/--quiet
àbuild
comme indiqué dans le cette réponseJuste grep l'ID de
docker images
:Besoins pas de fichier temporaire et donne construction complète de la sortie. Vous pouvez le rediriger vers
/dev/null
ou d'un fichier journal.Variation d'Aaron réponse.
À l'aide de sed sans fichiers temporaires