Maison > Tutoriel système > Linux > Quel est le rôle de la dernière balise dans Docker ?

Quel est le rôle de la dernière balise dans Docker ?

WBOY
Libérer: 2024-03-05 09:52:22
avant
979 Les gens l'ont consulté

Dans Docker, la partie la plus mal comprise devrait être la dernière étiquette. La confusion est principalement due au nom, car le sens littéral ne transmet pas sa véritable signification. Dans cet article, apprenons ce que fait réellement la dernière balise et comment l'utiliser correctement.

latest 标签在Docker 中的作用是什么?

Il existe généralement deux façons de baliser des images : utilisez la commande docker tag ou utilisez -t pour transmettre des paramètres lors de l'exécution de docker build. Dans les deux cas, le paramètre est généralement de la forme nom_référentiel:nom_tag, par exemple : docker tag myrepo:mytag. Si ce référentiel est téléchargé sur Docker Hub, le nom du référentiel sera préfixé par le nom d'utilisateur Docker Hub et une barre oblique, par exemple : amouat/myrepo:mytag. Si aucun paramètre dans la partie tag n'est ajouté, par exemple : docker tag myrepo:1.0 myrepo, Docker lui donnera automatiquement la dernière balise. Vous connaissez peut-être déjà le contenu ci-dessus, mais en fait, il ne contient que ce contenu, et il n’a rien de magique.

Ce n'est pas parce que la balise d'image est « la plus récente » qu'il s'agit de la dernière image de la bibliothèque de ressources. Seulement si le propriétaire de cette bibliothèque de ressources est d'accord, l'image avec la dernière étiquette doit être la dernière image. Par exemple, je peux facilement transformer une image obsolète en une image avec la dernière balise, par exemple :

latest 标签在Docker 中的作用是什么?

L'image avec la dernière balise ici est la même que l'image de la version 0.9, il y a deux semaines, mais l'image de la 1.0 date d'il y a une minute.

Pourquoi cette étiquette déroute beaucoup de gens est en fait plus facile à comprendre. « il suffit de tirer la dernière image » cette phrase signifie-t-elle obtenir l'image avec la dernière balise ou obtenir la dernière image ? Ces deux-là sont-ils identiques ? S'agit-il des dernières images du référentiel ? S'agit-il de la dernière image de la version stable ou de la dernière image de la version de développement ?

Ce qui est pire, c'est que beaucoup de gens semblent penser que la dernière étiquette sera automatiquement mise à jour, ce qui signifie que si j'obtiens une image avec la dernière étiquette, Docker vérifiera s'il s'agit de la dernière version avant chaque exécution. Cela n'arrivera jamais et, comme les autres balises, vous devez décider manuellement si Docker obtiendra la dernière version de l'image.

La confusion ne s’arrête pas là. Que se passe-t-il si Docker extrait une image du référentiel sans spécifier de balise ? Si vous pensez qu'il obtiendra toutes les images, vous vous trompez, il n'obtiendra que celle avec la dernière étiquette. Si vous devez obtenir toutes les images, vous devez ajouter l'indicateur -a. Que se passera-t-il si vous effectuez une opération d'extraction sur la bibliothèque de ressources sans la dernière balise ? Comme indiqué ci-dessous :

$ docker pull amouat/myrepo
Pulling repository amouat/myrepo
2015/01/21 12:04:06 Tag latest not found in repository amouat/myrepo
Copier après la connexion

De façon inattendue, Docker a donné un message d'erreur. Mais je ne pense pas que tu saches ce qui se passe. L'une des choses les plus ennuyeuses est que la dernière balise masque les autres balises. Supposons que vous souhaitiez télécharger l'image Debian avec la dernière balise. De quelle version s'agit-il ?

$ docker images debian
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
debian              latest              4d6ce913b130        4 days ago          84.98 MB
Copier après la connexion

Euh, je ne sais pas. En fait il s'agit de la version 7.8 Wheezy.

latest 标签在Docker 中的作用是什么?

Je pense que Docker devrait mettre toutes les balises lors du téléchargement de l'image, mais je ne sais pas pourquoi il ne le fait pas. Ce qui se passe maintenant, c'est que les utilisateurs peuvent avoir différentes versions de la même image car elles sont étiquetées sur le serveur. Par exemple : si Wheezy et Latest sont mis à jour sur le Hub et que je reçois uniquement la version Debian mise à jour de Wheezy, alors bien qu'ils puissent être distingués sur le Hub, ma balise Wheezy sera plus petite que la version locale de la dernière nouvelle balise. .

Ce qui précède ne couvre que la plupart de la sémantique de la dernière version et des malentendus courants qu'elle provoque. Comment cette situation peut-elle être améliorée ? Personnellement, je pense que la dernière balise peut être annulée et remplacée par un mot plus proche de sa signification littérale, comme default. J'aimerais également voir des travaux visant à améliorer la façon dont les balises sont écrites, comme la mise à jour simultanée de toutes les balises d'une image. Dans le même temps, je recommande également fortement aux administrateurs de référentiel de se méfier de la dernière balise et de l'abandonner complètement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:linuxprobe.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal