2017-10-18 3 views
0

J'essaie de comprendre le registre des dockers et son étiquetage. J'utilise en fait le registre gitlab.Comment obtenir une dernière balise dans le registre des dockers

Scénario:

Je pousse image1:latest

Cinq minutes plus tard, je pousse image1:latest à nouveau.

J'ai seulement une instance de image1:latest dans mon registre.

Je suppose qu'une étiquette est juste du texte sans signification sémantique qui est comprise. Le registre ne peut donc conserver qu'une seule image avec la balise latest. Il ne comprend pas que latest signifie quelque chose. Ce dont j'ai besoin, si je comprends bien, c'est de n'avoir qu'une seule image avec l'étiquette latest. Donc, dans mon exemple ci-dessus, je verrais ..

image1 - Uploaded 5 minutes ago

image1:latest - Uploaded 30 seconds ago

Si cela ne fonctionne pas de cette façon alors quelle est la stratégie de versionnage correcte pour les conteneurs?

Répondre

1

Cet article sur le médium aidera à dissiper beaucoup de confusion.

https://medium.com/@mccode/the-misunderstood-docker-tag-latest-af3babfd6375

Dans mon cas, nous en général la version le nombre de notre image builds, par exemple, le marquage de l'image avec image1: v_1, va créer une image image1: v_1. Ce qui se passe aussi, c'est que image1: v_1 peut aussi être référencé en utilisant image1: latest. Donc, si vous continuez à tagger image1 avec image1: le dernier n'a pas vraiment de tag, il sait juste que c'est le dernier. J'espère que ce n'était pas trop confus.

+0

Très utile merci. Le problème que j'ai maintenant est de savoir comment obtenir un numéro de version dans le fichier .gitlab-ci.yml. Je ne veux pas avoir à mettre à jour la définition de construction chaque fois que je change de version. Comment gérez-vous cela? – Remotec

+0

Comme tout est automatisé par le script Jenkins/Shell, j'ai un template yml, et j'utilise 'sed' pour remplacer le numéro de version à chaque fois par un numéro de build. Mais dans votre cas, si vous ne vous souciez pas du tout des balises, il suffit de le pousser sans balise et d'utiliser ': latest' chaque fois que vous voulez utiliser l'image dans un conteneur. – Serey