Docker Nieprawidłowy format odniesienia

Docker Nieprawidlowy Format Odniesienia



Podczas pracy z obrazami Dockera lub plikiem Dockerfile może wystąpić błąd „nieprawidłowy format odniesienia”.

W tym samouczku dowiemy się, co oznacza ten błąd, dlaczego występuje i jak można go rozwiązać w korzystaniu z Dockera.

Co to jest odniesienie do obrazu w Dockerze?

W Dockerze odwołanie do obrazu odnosi się do metody identyfikowania i lokalizowania określonego obrazu Dockera w rejestrze Dockera (Docker Hub) lub na lokalnym hoście Dockera.







Domyślnie odniesienie do obrazu składa się z dwóch głównych komponentów:



Repozytorium – Pierwsza część definiuje repozytorium dla obrazu docelowego. Jest to jednostka organizacyjna najwyższego poziomu dla obrazu Dockera, używana głównie do reprezentowania organizacji lub osoby zarządzającej obrazem. Na przykład można znaleźć obraz o nazwie Microsoft/SQL-server. W tym przypadku pierwsza część reprezentuje organizację dbającą o wizerunek.



Tag – druga część obrazu to etykieta powiązana z konkretną wersją lub wariantem obrazu w repozytorium. Tagi obrazów mogą reprezentować różne wersje tego samego obrazu, różne wydania lub różną zgodność. Na przykład na obrazie nginx:latest, gdzie najnowszy tag odnosi się do najnowszej wersji obrazu Nginx.





Podczas określania obrazu w poleceniu Dockerfile lub docker nazwa obrazu musi być zgodna z następującymi regułami nazewnictwa:

  • Nazwa repozytorium powinna być napisana małymi literami.
  • Repozytorium może również zawierać litery, cyfry, łączniki (-), podkreślenia (_) lub ukośniki (/), aby wskazać organizację lub grupowanie w rejestrze.
  • W nazwie obrazu nie powinny znajdować się żadne białe znaki (spacje ani tabulatory).

Nieprawidłowy format odniesienia platformy Docker

Jeśli podczas uruchamiania polecenia Dockerfile lub Docker pojawi się błąd „nieprawidłowy format odniesienia”, oznacza to, że Twoje imię i nazwisko nie spełnia powyższych zasad.



Przykład jest następujący:

$ okno dokowane wyciągnąć BusyBox

Jeśli uruchomimy powyższe polecenie, zwróci błąd, jak pokazano:

nieważny odniesienie format: nazwa repozytorium musi być napisana małymi literami

W tym przypadku informuje nas, że format nazwy obrazu jest nieprawidłowy, ponieważ nazwa obrazu powinna zawsze być pisana małymi literami.

Jak naprawić błąd nieprawidłowego formatu odniesienia platformy Docker

Jak można się domyślić, pierwsza metoda polega na upewnieniu się, że format odniesienia obrazu jest prawidłowy. Obejmuje to sprawdzenie, czy nazwa obrazu jest prawidłowa.

Na przykład w powyższym poleceniu możemy naprawić błąd, podając nazwę obrazu jako:

$ sudo docker pull busybox:najnowsze

W takim przypadku polecenie powinno pobrać najnowszą wersję obrazu Busybox.

Metoda 2 – Podziel długie polecenia dokera

W niektórych innych przypadkach podczas uruchamiania długiego polecenia Dockera może wystąpić błąd „nieprawidłowy format odniesienia”.

W takim przypadku dobrą praktyką jest podzielenie polecenia na wiele linii. Metoda podziału poleceń będzie zależeć od powłoki i systemu.

  • Jednak w przypadku powłoki Bash użyj wielowierszowego znaku ucieczki lub ukośnika odwrotnego (\).
  • W przypadku programu PowerShell można użyć znaku backtick (`).
  • Wreszcie, jeśli jesteś w wierszu poleceń, możesz użyć znaku karetki jako ^

Na przykład w Bash uruchom polecenie jako:

$ sudo kompilacja okna dokowanego \

-To \

zajętybox \

cii

W PowerShell możesz uruchomić polecenie, jak pokazano:

$ sudo kompilacja dokera `

-To `

zajętybox `

cii

I na koniec, jeśli jesteś w wierszu poleceń, użyj polecenia, jak pokazano:

$ sudo kompilacja dokera ^

-To ^

zajętybox ^

cii

Metoda 3 – ścieżka ${pwd} ORAZ $(pwd).

Inną częstą przyczyną tego błędu jest użycie zmiennej ${pwd}. Może to powodować konflikt, w zależności od typu powłoki, na której wykonujesz wspomniane polecenie.

W przypadku PowerShell musisz użyć zmiennej ${pwd} zamiast $(pwd).

Jak możesz się domyślić, w przypadku Bash użyj formatu nawiasów zamiast wprowadzania danych w nawiasach klamrowych jako $(pwd).

Wniosek

W tym poście omówiono główne przyczyny „nieprawidłowego formatu odniesienia” podczas pracy z plikiem Dockerfile lub poleceniami dokera. Zbadaliśmy również trzy główne metody rozwiązania tego problemu.