Home
» Windows
»
Kako ispraviti grešku Docker: Nevažeći format reference
Kako ispraviti grešku Docker: Nevažeći format reference
Docker olakšava izradu, pokretanje i upravljanje kontejnerima. Međutim, prilikom pokretanja ili izrade slike možete naići na pogrešku "Nevažeći format reference". U većini slučajeva to je zbog manje pogreške u formatiranju naziva ili oznake slike. Na primjer, pogreška može biti uzrokovana velikim slovima, posebnim znakovima ili nedostajućim vrijednostima. Ovaj vodič objasnit će uobičajene uzroke ove pogreške i kako je ispraviti kako biste spriječili njezino ponavljanje.
Ispravljanje pogreške "Nevažeći format reference"
Otkrijmo najčešće uzroke pogreške "Nevažeći format reference" i kako je ispraviti:
Velika slova u nazivima slika
Docker zahtijeva da nazivi slika budu malim slovima. Čak i jedno veliko slovo može uzrokovati pogreške u formatiranju. Na primjer, pokretanje sljedeće naredbe rezultirat će pogreškom:
docker pull NGINX
Nazivi arhiva moraju biti malim slovima
Kako biste izbjegli ovu grešku, uvijek dvaput provjerite je li naziv slike napisan malim slovima prije pokretanja naredbe.
docker pull nginx
Koristite mala slova
Poseban ili nevažeći znak
Ponekad korisnici slučajno dodaju znakove koje Docker ne dopušta. To uključuje znakove @, razmake ili znakove kopirane s web stranice ili dokumenta koji izgledaju normalno, ali nisu.
Na primjer, sljedeća naredba sadrži poseban znak @, što će uzrokovati sljedeću grešku:
docker run ubuntu@:latest
Pogreška posebnog znaka
Da biste ispravili ovu pogrešku, provjerite da u naredbi nema dodatnih znakova ili problema s formatiranjem. Možete upotrijebiti običan tekstualni editor za provjeru i čišćenje naredbe (ako je potrebno):
docker run ubuntu:latest
Izbjegavajte posebne znakove
Debelo crijevo bez oznake
Jedna od najčešćih pogrešaka je stavljanje dvotočke na kraj naziva slike, ali ne i uključivanje oznake. Na primjer, pokušajmo sljedeću naredbu za preuzimanje Node:
docker pull node:
Docker očekuje vrijednost nakon dvotočke, kao što je latest, 18-alpine ili bilo koja druga valjana oznaka. Ako nije navedena vrijednost, naziv slike smatra se nepotpunim i uzrokovat će pogrešku "Nevažeći format reference":
Debelo crijevo bez oznake
Da biste ispravili ovu pogrešku, dodajte odgovarajuću oznaku nakon dvotočke kako biste naziv slike učinili potpunim i valjanim:
docker pull node:latest
Dodajte oznake nakon dvotočke
Putanja datoteke ili montiranje diska sadrži razmake
Kada uključite putanju datoteke koja sadrži razmake, posebno s opcijama poput -v (montaža volumena), Docker može pogrešno protumačiti dijelove putanje kao zasebne argumente ili čak kao dio naziva slike. Kao rezultat toga, možete naići na neočekivane rezultate poput onog prikazanog u nastavku:
docker run -v /home/user/My Folder:/app ubuntu
Razmaci u nazivima datoteka
Kako biste to izbjegli, uvijek stavite putanju datoteke u dvostruke navodnike, kao što je prikazano u nastavku:
docker run -v "/home/user/My Folder:/app" ubuntu
Zamijenite "/home/user/My Folder" stvarnom putanjom do direktorija koji želite montirati u kontejner.
Neprimjerena upotreba varijabli
Pri radu s Dockerom uobičajeno je koristiti varijable u naredbama, posebno pri određivanju verzija slika. Međutim, ako varijabla poput $VERSION nije ispravno postavljena, Docker može naići na probleme poput pogreške "Nevažeći format reference".
Na primjer, pokrenite sljedeću naredbu za preuzimanje Ubuntua iz Docker Huba:
docker pull ubuntu:$VERSION
Ovdje bi $VERSION trebao predstavljati verziju Ubuntu slike koju želite preuzeti. Ali ako mu ne dodijelite vrijednost, Docker će naredbu protumačiti kao "docker pull ubuntu:". To rezultira nevažećim nazivom slike jer završava dvotočkom i nedostaje mu potrebna oznaka verzije.
Nepravilna upotreba varijabli
Kako biste to izbjegli, provjerite jesu li sve varijable korištene u naredbi ispravno definirane. U Linuxu varijablu možete postaviti pomoću sljedeće sintakse.
$VERSION=latest
Zatim povucite navedenu verziju izvršavanjem sljedeće naredbe.
docker pull ubuntu:$VERSION
U Windows CMD-u, potrebno je koristiti ključnu riječ set za definiranje varijable (poput version), a zatim koristiti sintaksu %VARIABLE% za pozivanje na nju u naredbama poput docker pull.
set VERSION=latest
docker pull ubuntu:%VERSION%
Ovdje $VERSION sadrži najnoviju vrijednost, tako da Docker bez problema povlači sliku ubuntu:latest . Također možete dodijeliti određenu verziju, kao što je 18.04, ako je potrebno.
Pravilno definirajte varijable
Problem s kopiranjem i lijepljenjem
Ponekad korisnici kopiraju naredbe iz online tutorijala ili dokumentacije. Ove kopirane naredbe mogu sadržavati skrivene znakove poput nevidljivih razmaka, interpunkcijskih znakova koji nisu engleski ili posebnih navodnika. Ti znakovi mogu neprimjetno oštetiti vaše Docker naredbe.
Kako biste to izbjegli, bolje je da sami upišete naredbu kad god je to moguće ili je prvo zalijepite u običan tekstualni editor kako biste uklonili neželjeno formatiranje.
Sada kada znate uobičajene uzroke pogreške "Nevažeći format reference" u Dockeru i kako je ispraviti, bit ćete na dobrom putu da izbjegnete ovaj problem u budućnosti. Od provjere velikih slova do provjere jesu li vaše varijable ispravno postavljene, ovi jednostavni savjeti mogu vam uštedjeti puno vremena i frustracija. Ako ste spremni za daljnje istraživanje, možda biste također htjeli naučiti kako označiti i poslati svoje prilagođene Docker slike u registar ili kako očistiti nekorištene slike kako bi vaš sustav bio čist.