Docker nevažeći referentni format

Docker Nevazeci Referentni Format



Kada radite s Docker slikama ili Dockerfileom, mogli biste naići na pogrešku 'nevažeći referentni format'.

U ovom vodiču naučit ćemo što ova pogreška znači, zašto se pojavljuje i kako je možete riješiti u korištenju Dockera.

Što je referenca slike u Dockeru?

U Dockeru, referenca slike odnosi se na metodu identificiranja i lociranja određene Docker slike unutar Docker registra (Docker Hub) ili lokalnog Docker hosta.







Prema zadanim postavkama, referenca slike sastoji se od dvije glavne komponente:



Repozitorij – prvi dio definira repozitorij za ciljnu sliku. Ovo je organizacijska jedinica najviše razine za Docker sliku, koja se uglavnom koristi za predstavljanje organizacije ili pojedinca koji upravlja slikom. Na primjer, možete pronaći sliku pod nazivom Microsoft/SQL-poslužitelj. U ovom slučaju, prvi dio predstavlja organizaciju koja održava sliku.



Oznaka – Drugi dio slike je oznaka povezana s određenom verzijom ili varijantom slike unutar repozitorija. Oznake slike mogu predstavljati različite verzije iste slike, različita izdanja ili različitu kompatibilnost. Na primjer, na slici nginx:latest gdje se najnovija oznaka odnosi na najnoviju verziju Nginx slike.





Kada navodite sliku u Dockerfile ili docker naredbi, naziv slike mora slijediti sljedeća pravila imenovanja:

  • Naziv repozitorija treba biti napisan malim slovima.
  • Repozitorij također može sadržavati slova, brojeve, crtice (-), podvlake (_) ili kose crte (/) za označavanje organizacije ili grupiranja unutar registra.
  • U nazivu slike ne smiju biti razmaci (razmaci ili tabulatori).

Docker nevažeći referentni format

Kada dobijete pogrešku 'nevažeći referentni format' prilikom pokretanja naredbe Dockerfile ili Docker, to znači da vaše ime nije u skladu s gornjim pravilima.



Primjer je kao što je prikazano:

$ docker povući BusyBox

Ako pokrenemo gornju naredbu, vratit će pogrešku kao što je prikazano:

nevaljan referenca format: ime repozitorija mora biti malim slovima

U ovom slučaju, to nam govori da format naziva slike nije ispravan, jer naziv slike uvijek treba biti malim slovima.

Kako popraviti pogrešku Docker Invalid Reference Format Error

Kao što možete pogoditi, prva metoda je osiguravanje ispravnosti formata reference slike. To uključuje provjeru valjanosti naziva slike.

Na primjer, u gornjoj naredbi možemo popraviti pogrešku navođenjem naziva slike kao:

$ sudo docker pull busybox:najnovije

U ovom slučaju, naredba bi trebala povući najnoviju verziju Busybox slike.

Metoda 2 – Podijeli duge docker naredbe

U nekim drugim slučajevima možete naići na pogrešku 'nevažeći referentni format' prilikom pokretanja duge Docker naredbe.

U tom slučaju, dijeljenje naredbe u više redaka dobra je praksa. Metoda dijeljenja naredbi ovisit će o vašoj ljusci i sustavu.

  • Međutim, za Bash ljusku upotrijebite višeredni izlazni znak ili obrnutu kosu crtu (\).
  • Za PowerShell možete koristiti povratni znak (`).
  • Konačno, ako ste na naredbenom retku, možete koristiti znak umetanja kao ^

Na primjer, na Bashu pokrenite naredbu kao:

$ sudo docker build \

-to \

busybox \

sh

Na PowerShell-u možete pokrenuti naredbu kao što je prikazano:

$ sudo docker build `

-to `

busybox `

sh

I na kraju, ako ste na naredbenom retku, koristite naredbu kao što je prikazano:

$ sudo docker build ^

-to ^

busybox ^

sh

Metoda 3 – ${pwd} I $(pwd) put

Još jedan uobičajeni uzrok ove pogreške je korištenje varijable ${pwd}. To može uzrokovati sukob, ovisno o vrsti ljuske na kojoj izvršavate navedenu naredbu.

U slučaju PowerShell-a, trebate koristiti varijablu ${pwd} umjesto $(pwd).

Kao što možete pogoditi, u slučaju Basha, koristite format zagrada umjesto unosa u vitičastim zagradama kao $(pwd).

Zaključak

Ovaj post raspravljao je o vodećim uzrocima 'nevažećeg referentnog formata' pri radu s Dockerfileom ili docker naredbama. Također smo istražili tri glavne metode koje možete koristiti za rješavanje ovog problema.