Heim > System-Tutorial > LINUX > Hauptteil

Welche Rolle spielt das neueste Tag in Docker?

WBOY
Freigeben: 2024-03-05 09:52:22
nach vorne
952 Leute haben es durchsucht

In Docker dürfte der am meisten missverstandene Teil das neueste Label sein. Die Verwirrung ist hauptsächlich auf den Namen zurückzuführen, da die wörtliche Bedeutung nicht die wahre Bedeutung wiedergibt. In diesem Artikel erfahren Sie, was das neueste Tag wirklich bewirkt und wie man es richtig verwendet.

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

Normalerweise gibt es zwei Möglichkeiten, Bilder zu markieren: Verwenden Sie den Docker-Tag-Befehl oder verwenden Sie -t, um Parameter beim Ausführen des Docker-Builds zu übergeben. In beiden Fällen hat der Parameter normalerweise die Form Repository-Name:Tag-Name, zum Beispiel: Docker-Tag myrepo:mytag. Wenn dieses Repository auf Docker Hub hochgeladen wird, wird dem Namen des Repositorys der Docker Hub-Benutzername und ein Schrägstrich vorangestellt, zum Beispiel: amouat/myrepo:mytag. Wenn im Tag-Teil keine Parameter hinzugefügt werden, zum Beispiel: docker tag myrepo:1.0 myrepo, vergibt Docker automatisch das neueste Tag. Möglicherweise kennen Sie den oben genannten Inhalt bereits, aber tatsächlich enthält er nur diesen Inhalt und es ist nichts Magisches daran.

Nur weil das Bild-Tag „neueste“ lautet, heißt das nicht, dass es sich um das neueste Bild in der Ressourcenbibliothek handelt. Nur der Eigentümer dieser Ressourcenbibliothek stimmt zu, dass das Bild mit der neuesten Bezeichnung das neueste Bild sein muss. Ich kann zum Beispiel ganz einfach ein veraltetes Bild in ein Bild mit dem neuesten Tag umwandeln, zum Beispiel:

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

Das Bild mit dem neuesten Tag hier ist das gleiche wie das Bild der Version 0.9, die zwei Wochen alt ist, aber das Bild von 1.0 ist eine Minute her.

Warum diese Bezeichnung viele Menschen verwirrt, ist eigentlich leichter zu verstehen. „Einfach das neueste Bild abrufen“ bedeutet dieser Satz, das Bild mit dem neuesten Tag zu erhalten oder das neueste Bild zu erhalten? Sind diese beiden gleich? Sind es die neuesten Bilder im Repository? Handelt es sich um das Image der neuesten stabilen Version oder um das Image der neuesten Entwicklungsversion?

Was noch schlimmer ist, ist, dass viele Leute anscheinend denken, dass das neueste Label automatisch aktualisiert wird. Das heißt, wenn ich ein Image mit dem neuesten Label erhalte, prüft Docker vor jedem Start, ob es die neueste Version ist. Dies wird nie passieren und wie bei anderen Tags müssen Sie manuell entscheiden, ob Docker die neueste Version des Images erhält.

Die Verwirrung hört hier nicht auf. Was passiert, wenn ich per Docker ein Bild aus dem Repository ziehe, ohne ein Tag anzugeben? Wenn Sie glauben, dass alle Bilder abgerufen werden, liegen Sie falsch. Es wird nur das Bild mit dem neuesten Label abgerufen. Wenn Sie alle Bilder benötigen, müssen Sie das Flag -a hinzufügen. Was passiert, wenn Sie einen Pull-Vorgang für die Ressourcenbibliothek ohne das neueste Tag ausführen? Wie unten gezeigt:

$ docker pull amouat/myrepo
Pulling repository amouat/myrepo
2015/01/21 12:04:06 Tag latest not found in repository amouat/myrepo
Nach dem Login kopieren

Unerwarteterweise gab Docker eine Fehlermeldung aus. Aber ich glaube nicht, dass Sie wissen, was los ist. Eines der ärgerlicheren Dinge ist, dass das neueste Tag andere Tags verbirgt. Angenommen, Sie möchten das Debian-Image mit dem neuesten Tag herunterladen. Um welche Version handelt es sich?

$ docker images debian
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
debian              latest              4d6ce913b130        4 days ago          84.98 MB
Nach dem Login kopieren

Ähm, ich weiß es nicht. Tatsächlich handelt es sich um Version 7.8 Wheezy.

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

Ich denke, Docker sollte beim Herunterladen des Bildes alle Tags einfügen, aber ich weiß nicht, warum es das nicht tut. Was jetzt passiert, ist, dass Benutzer unterschiedliche Versionen desselben Bildes haben können, weil sie auf dem Server gekennzeichnet sind. Beispiel: Wenn sowohl Wheezy als auch Latest auf dem Hub aktualisiert werden und ich nur die aktualisierte Wheezy-Version Debian erhalte, ist mein Wheezy-Tag kleiner als die lokale Version des Latest-Tags, obwohl sie auf dem Hub unterschieden werden können .

Das Obige deckt nur den Großteil der Semantik von „latest“ und die häufigen Missverständnisse ab, die es verursacht. Wie kann diese Situation verbessert werden? Persönlich denke ich, dass das neueste Tag gelöscht und durch ein Wort ersetzt werden kann, das seiner wörtlichen Bedeutung näher kommt, beispielsweise „default“. Ich würde mir auch etwas Arbeit zur Verbesserung der Art und Weise, wie Tags erstellt werden, wünschen, wie zum Beispiel die gleichzeitige Aktualisierung aller Tags für ein Bild. Gleichzeitig empfehle ich Repository-Administratoren dringend, sich vor dem neuesten Tag in Acht zu nehmen und es vollständig aufzugeben.

Das obige ist der detaillierte Inhalt vonWelche Rolle spielt das neueste Tag in Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:linuxprobe.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage