Wie werden Docker-Image-Namen analysiert?

Wenn ein @ gemacht widocker push oder wie ermittelt Docker beim Abrufen eines Abbilds, ob der Abbildname einen Registrierungsserver enthält oder ob es sich um einen Pfad / Benutzernamen in der Standardregistrierung handelt (z. B. Docker Hub)?

Ich sehe das Folgende aus dem 1.1 Bildspezifikation:

Etiket

Ein Tag dient zum Zuordnen eines beschreibenden, benutzerdefinierten Namens zu einer einzelnen Bild-ID. Tag-Werte sind auf den Zeichensatz [a-zA-Z_0-9] beschränkt.

Repositor

Eine Sammlung von Tags, die unter einem gemeinsamen Präfix (der Namenskomponente vor :) gruppiert sind. In einem Bild mit dem Namen my-app: 3.1.4 ist my-app beispielsweise die Repository-Komponente des Namens. Ein Repository-Name besteht aus durch Schrägstriche getrennten Namenskomponenten, denen optional ein DNS-Hostname vorangestellt wird. Der Hostname muss den Standard-DNS-Regeln entsprechen, darf jedoch keine _-Zeichen enthalten. Wenn ein Hostname vorhanden ist, kann optional eine Portnummer im Format 8080 folgen. Namenskomponenten können Kleinbuchstaben, Ziffern und Trennzeichen enthalten. Ein Trennzeichen ist als Punkt, ein oder zwei Unterstriche oder ein oder mehrere Bindestriche definiert. Eine Namenskomponente darf nicht mit einem Trennzeichen beginnen oder enden.

Muss der DNS-Hostname vollständig mit Punkten gekennzeichnet sein, oder ist "mein-lokaler-Server" ein gültiger Registrierungshostname? Für die Namenskomponenten sehe ich Punkte als gültig an, was bedeutet, dass "team.user / appserver" ein gültiger Image-Name ist. Wenn der Registrierungsserver auf Port 80 ausgeführt wird und daher für den Hostnamen im Image-Namen keine Portnummer erforderlich ist, besteht anscheinend eine Mehrdeutigkeit zwischen dem Hostnamen und dem Pfad auf dem Registrierungsserver. Ich bin gespannt, wie Docker diese Unklarheit löst.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage