Home
» Windows
»
Kako odpraviti napako »Docker: Neveljavna oblika sklicevanja«
Kako odpraviti napako »Docker: Neveljavna oblika sklicevanja«
Docker olajša gradnjo, zagon in upravljanje vsebnikov. Vendar pa lahko pri zagonu ali gradnji slike naletite na napako »Neveljavna oblika sklica«. V večini primerov je to posledica manjše napake pri oblikovanju imena ali oznake slike. Napaka je lahko na primer posledica velikih črk, posebnih znakov ali manjkajočih vrednosti. Ta vodnik bo razložil pogoste vzroke te napake in kako jo odpraviti, da se ne bi ponovila.
Odpravite napako »Neveljavna oblika sklica«
Ugotovimo najpogostejše vzroke napake »Neveljavna oblika sklica« in kako jo odpraviti:
Velike začetnice v imenih slik
Docker zahteva, da so imena slik napisana z malimi črkami. Že ena sama velika črka lahko povzroči napake pri oblikovanju. Na primer, zagon naslednjega ukaza bo povzročil napako:
docker pull NGINX
Imena arhivov morajo biti napisana z malimi črkami
Da bi se izognili tej napaki, pred zagonom ukaza vedno preverite, ali je ime slike napisano z malimi črkami.
docker pull nginx
Uporabljajte male črke
Poseben ali neveljaven znak
Včasih uporabniki pomotoma dodajo znake, ki jih Docker ne dovoljuje. To vključuje znake @, presledke ali znake, kopirane s spletnega mesta ali dokumenta, ki so videti normalni, vendar niso.
Na primer, naslednji ukaz vsebuje poseben znak @, ki bo povzročil naslednjo napako:
docker run ubuntu@:latest
Napaka posebnega znaka
Če želite odpraviti to napako, se prepričajte, da v ukazu ni dodatnih znakov ali težav z oblikovanjem. Za preverjanje in čiščenje ukaza (če je potrebno) lahko uporabite urejevalnik navadnega besedila:
docker run ubuntu:latest
Izogibajte se posebnim znakom
Debelo črevo brez oznake
Ena najpogostejših napak je, da na koncu imena slike postavimo dvopičje, vendar ne vključimo oznake. Na primer, poskusimo z naslednjim ukazom za izvlečenje podatkov iz Node:
docker pull node:
Docker pričakuje vrednost za dvopičjem, na primer latest , 18-alpine ali katero koli drugo veljavno oznako. Če vrednost ni podana, se ime slike šteje za nepopolno in bo povzročilo napako »Neveljavna oblika sklica«:
Debelo črevo brez oznake
Če želite odpraviti to napako, dodajte ustrezno oznako za dvopičjem, da bo ime slike polno in veljavno:
docker pull node:latest
Dodaj oznake za dvopičjem
Pot datoteke ali priklop nosilca vsebuje presledke
Ko vključite pot do datoteke, ki vsebuje presledke, zlasti z možnostmi, kot je -v (priklop nosilca), lahko Docker dele poti napačno interpretira kot ločene argumente ali celo kot del imena slike. Posledično lahko naletite na nepričakovane rezultate, kot je prikazan spodaj:
docker run -v /home/user/My Folder:/app ubuntu
Presledki v imenih datotek
Da bi se temu izognili, vedno zaprite pot do datoteke s presledki v dvojnih narekovajih, kot je prikazano spodaj:
docker run -v "/home/user/My Folder:/app" ubuntu
Zamenjajte »/home/user/My Folder« z dejansko potjo do imenika, ki ga želite namestiti v vsebnik.
Neprimerna uporaba spremenljivk
Pri delu z Dockerjem je pogosto uporabljati spremenljivke v ukazih, zlasti pri določanju različic slik. Če pa spremenljivka, kot je $VERSION, ni pravilno nastavljena, lahko Docker naleti na težave, kot je napaka »Neveljavna oblika sklica«.
Na primer, zaženite naslednji ukaz, da iz Docker Huba povlečete Ubuntu:
docker pull ubuntu:$VERSION
Tukaj naj bi $VERSION predstavljal različico slike Ubuntu, ki jo želite prenesti. Če pa ji ne dodelite vrednosti, bo Docker ukaz interpretiral kot »docker pull ubuntu:«. To povzroči neveljavno ime slike, ker se konča z dvopičjem in nima zahtevane oznake različice.
Nepravilna uporaba spremenljivk
Da bi se temu izognili, se prepričajte, da so vse spremenljivke, uporabljene v ukazu, pravilno definirane. V Linuxu lahko spremenljivko nastavite z naslednjo sintakso.
$VERSION=latest
Nato povlecite določeno različico z izvedbo naslednjega ukaza.
docker pull ubuntu:$VERSION
V ukazni vrstici sistema Windows CMD morate za definiranje spremenljivke (kot je različica) uporabiti ključno besedo set, nato pa za sklicevanje nanjo v ukazih, kot je docker pull, uporabiti sintakso %VARIABLE% .
set VERSION=latest
docker pull ubuntu:%VERSION%
Tukaj $VERSION vsebuje najnovejšo vrednost, tako da Docker brez težav potegne sliko ubuntu:latest . Po potrebi lahko dodelite tudi določeno različico, na primer 18.04.
Pravilno definirajte spremenljivke
Težava s kopiranjem in lepljenjem
Včasih uporabniki kopirajo ukaze iz spletnih vadnic ali dokumentacije. Ti kopirani ukazi lahko vsebujejo skrite znake, kot so nevidni presledki, ločila, ki niso angleška, ali posebni narekovaji. Ti znaki lahko neopazno poškodujejo vaše Dockerjeve ukaze.
Da bi se temu izognili, je bolje, da ukaz, kadar je to mogoče, vnesete sami ali pa ga najprej prilepite v urejevalnik navadnega besedila, da odstranite neželeno oblikovanje.
Zdaj, ko poznate pogoste vzroke napake »Neveljavna oblika sklica« v Dockerju in kako jo odpraviti, boste na dobri poti, da se tej težavi v prihodnje izognete. Od preverjanja velikih začetnic do zagotavljanja pravilne nastavitve spremenljivk – ti preprosti nasveti vam lahko prihranijo veliko časa in frustracij. Če ste pripravljeni na nadaljnje raziskovanje, se boste morda želeli naučiti tudi, kako označiti in potisniti slike Dockerja po meri v register ali kako očistiti neuporabljene slike, da bo vaš sistem čist.