Docker-ungültiges Referenzformat

Docker Ungultiges Referenzformat



Bei der Arbeit mit Docker-Images oder Dockerfiles kann der Fehler „Ungültiges Referenzformat“ auftreten.

In diesem Tutorial erfahren Sie, was dieser Fehler bedeutet, warum er auftritt und wie Sie ihn bei Ihrer Docker-Nutzung beheben können.

Was ist eine Bildreferenz in Docker?

In Docker bezieht sich eine Image-Referenz auf eine Methode zum Identifizieren und Auffinden eines bestimmten Docker-Images innerhalb der Docker-Registrierung (Docker Hub) oder des lokalen Docker-Hosts.







Standardmäßig besteht die Bildreferenz aus zwei Hauptkomponenten:



Repository – Der erste Teil definiert das Repository für das Zielbild. Dies ist die Organisationseinheit der obersten Ebene für das Docker-Image, die hauptsächlich zur Darstellung der Organisation oder der Einzelperson verwendet wird, die das Image verwaltet. Sie können beispielsweise ein Image mit dem Namen „Microsoft/SQL-Server“ finden. In diesem Fall repräsentiert der erste Teil die Organisation, die das Image pflegt.



Tag – Der zweite Teil eines Bildes ist ein Etikett, das mit der spezifischen Version oder Variante des Bildes im Repository verknüpft ist. Bild-Tags können verschiedene Versionen desselben Bildes, unterschiedliche Versionen oder unterschiedliche Kompatibilität darstellen. Zum Beispiel im Image von nginx:latest, wo sich das Tag „latest“ auf die neueste Version des Nginx-Images bezieht.





Wenn Sie das Bild in einem Dockerfile- oder Docker-Befehl angeben, muss der Bildname den folgenden Benennungsregeln entsprechen:

  • Der Repository-Name sollte in Kleinbuchstaben geschrieben sein.
  • Das Repository kann auch Buchstaben, Zahlen, Bindestriche (-), Unterstriche (_) oder Schrägstriche (/) enthalten, um die Organisation oder Gruppierung innerhalb einer Registrierung anzuzeigen.
  • Der Bildname darf keine Leerzeichen (Leerzeichen oder Tabulatoren) enthalten.

Ungültiges Docker-Referenzformat

Wenn Sie beim Ausführen des Dockerfile- oder Docker-Befehls die Fehlermeldung „Ungültiges Referenzformat“ erhalten, bedeutet dies, dass Ihr Name die oben genannten Regeln nicht eingehalten hat.



Ein Beispiel ist wie folgt:

$ Docker Pull BusyBox

Wenn wir den obigen Befehl ausführen, wird der folgende Fehler zurückgegeben:

ungültig Referenz Format: Der Repository-Name muss in Kleinbuchstaben geschrieben sein

In diesem Fall wird uns mitgeteilt, dass das Format des Bildnamens falsch ist, da der Bildname immer in Kleinbuchstaben geschrieben sein sollte.

So beheben Sie den Docker-Fehler wegen ungültigem Referenzformat

Wie Sie sich vorstellen können, besteht die erste Methode darin, sicherzustellen, dass das Bildreferenzformat korrekt ist. Dazu gehört auch die Überprüfung, ob der Bildname gültig ist.

Im obigen Befehl können wir den Fehler beispielsweise beheben, indem wir den Bildnamen wie folgt angeben:

$ Sudo Docker Pull Busybox: Neueste

In diesem Fall sollte der Befehl die neueste Version des Busybox-Images abrufen.

Methode 2 – Lange Docker-Befehle aufteilen

In einigen anderen Fällen kann beim Ausführen eines langen Docker-Befehls der Fehler „Ungültiges Referenzformat“ auftreten.

In einem solchen Fall empfiehlt es sich, den Befehl in mehrere Zeilen aufzuteilen. Die Methode der Befehlsaufteilung hängt von Ihrer Shell und Ihrem System ab.

  • Verwenden Sie für die Bash-Shell jedoch das mehrzeilige Escape-Zeichen oder den Backslash (\).
  • Für PowerShell können Sie das Backtick-Zeichen (`) verwenden.
  • Wenn Sie sich schließlich in der Eingabeaufforderung befinden, können Sie ein Caret-Zeichen als ^ verwenden

Führen Sie unter Bash beispielsweise den folgenden Befehl aus:

$ Sudo Docker-Build \

-Es \

Busybox \

Sch

Auf PowerShell können Sie den Befehl wie gezeigt ausführen:

$ Sudo Docker-Build `

-Es `

Busybox `

Sch

Und schließlich, wenn Sie sich in der Eingabeaufforderung befinden, verwenden Sie den Befehl wie gezeigt:

$ Sudo Docker-Build ^

-Es ^

Busybox ^

Sch

Methode 3 – ${pwd} UND $(pwd) Pfad

Eine weitere häufige Ursache für diesen Fehler ist die Verwendung der Variablen ${pwd}. Dies kann je nach Shell-Typ, auf dem Sie den besagten Befehl ausführen, zu Konflikten führen.

Im Fall von PowerShell müssen Sie die Variable ${pwd} anstelle von $(pwd) verwenden.

Wie Sie sich vorstellen können, verwenden Sie im Fall von Bash das Klammerformat anstelle der Eingabe in geschweiften Klammern als $(pwd).

Abschluss

In diesem Beitrag werden die Hauptursachen für das „ungültige Referenzformat“ bei der Arbeit mit Dockerfile oder Docker-Befehlen erläutert. Wir haben außerdem drei Hauptmethoden untersucht, mit denen Sie dieses Problem beheben können.