Home
» Windows
»
Ako opraviť chybu „Docker: Neplatný formát referencie“
Ako opraviť chybu „Docker: Neplatný formát referencie“
Docker uľahčuje vytváranie, spúšťanie a správu kontajnerov. Pri spúšťaní alebo vytváraní obrazu sa však môže vyskytnúť chyba „Neplatný formát referencie“. Vo väčšine prípadov je to spôsobené menšou chybou formátovania v názve alebo značke obrázka. Chyba môže byť napríklad spôsobená veľkými písmenami, špeciálnymi znakmi alebo chýbajúcimi hodnotami. Táto príručka vysvetlí bežné príčiny tejto chyby a ako ju opraviť, aby sa predišlo jej opakovaniu.
Oprava chyby „Neplatný formát referencie“
Pozrime sa na najčastejšie príčiny chyby „Neplatný formát referencie“ a ako ich opraviť:
Veľké písmená v názvoch obrázkov
Docker vyžaduje, aby názvy obrázkov boli malé písmená. Aj jedno veľké písmeno môže spôsobiť chyby formátovania. Napríklad spustenie nasledujúceho príkazu spôsobí chybu:
docker pull NGINX
Názvy archívov musia byť napísané malými písmenami
Aby ste sa tejto chybe vyhli, pred spustením príkazu vždy skontrolujte, či je názov obrázka malými písmenami.
docker pull nginx
Používajte malé písmená
Špeciálny alebo neplatný znak
Niekedy sa stane, že používatelia omylom pridajú znaky, ktoré Docker nepovoľuje. Patria sem znaky @, medzery alebo znaky skopírované z webovej stránky alebo dokumentu, ktoré vyzerajú normálne, ale nie sú.
Napríklad nasledujúci príkaz obsahuje špeciálny znak @, ktorý spôsobí nasledujúcu chybu:
docker run ubuntu@:latest
Chyba špeciálneho znaku
Ak chcete túto chybu opraviť, uistite sa, že v príkaze nie sú žiadne nadbytočné znaky ani problémy s formátovaním. Na kontrolu a vyčistenie príkazu (ak je to potrebné) môžete použiť textový editor:
docker run ubuntu:latest
Vyhnite sa špeciálnym znakom
Hrubé črevo bez štítku
Jednou z najčastejších chýb je umiestniť dvojbodku na koniec názvu obrázka, ale nezahrnúť značku. Napríklad, skúsme nasledujúci príkaz na stiahnutie Node:
docker pull node:
Docker očakáva hodnotu za dvojbodkou, napríklad latest , 18-alpine alebo akúkoľvek inú platnú značku. Ak nie je zadaná žiadna hodnota, názov obrázka sa považuje za neúplný a spôsobí chybu „Neplatný formát referencie“:
Hrubé črevo bez štítku
Ak chcete túto chybu opraviť, pridajte za dvojbodku príslušnú značku, aby bol názov obrázka úplný a platný:
docker pull node:latest
Pridajte značky za dvojbodku
Cesta k súboru alebo pripojenie zväzku obsahuje medzery
Keď zahrniete cestu k súboru, ktorá obsahuje medzery, najmä s možnosťami ako -v (pripojenie zväzku), Docker môže nesprávne interpretovať časti cesty ako samostatné argumenty alebo dokonca ako súčasť názvu obrazu. V dôsledku toho sa môžete stretnúť s neočakávanými výsledkami, ako je uvedené nižšie:
docker run -v /home/user/My Folder:/app ubuntu
Medzery v názvoch súborov
Aby ste tomu predišli, vždy uzavrite cestu k súboru medzerami v dvojitých úvodzovkách, ako je to znázornené nižšie:
docker run -v "/home/user/My Folder:/app" ubuntu
Nahraďte „/home/user/My Folder“ skutočnou cestou k adresáru, ktorý chcete pripojiť do kontajnera.
Nevhodné použitie premenných
Pri práci s Dockerom je bežné používať premenné v príkazoch, najmä pri určovaní verzií obrázkov. Ak však premenná ako $VERSION nie je nastavená správne, Docker môže naraziť na problémy, ako je chyba „Neplatný formát referencie“.
Napríklad spustite nasledujúci príkaz na stiahnutie Ubuntu z Docker Hub:
docker pull ubuntu:$VERSION
Tu má $VERSION predstavovať verziu obrazu Ubuntu, ktorú chcete stiahnuť. Ak mu však nepriradíte hodnotu, Docker interpretuje príkaz ako „docker pull ubuntu:“. Výsledkom je neplatný názov obrazu, pretože končí dvojbodkou a chýba mu požadovaný tag verzie.
Nesprávne použitie premenných
Aby ste tomu predišli, uistite sa, že všetky premenné použité v príkaze sú správne definované. V systéme Linux môžete nastaviť premennú pomocou nasledujúcej syntaxe.
$VERSION=latest
Potom stiahnite zadanú verziu vykonaním nasledujúceho príkazu.
docker pull ubuntu:$VERSION
V príkazovom riadku systému Windows musíte na definovanie premennej (napríklad verzie) použiť kľúčové slovo set a potom na jej použitie v príkazoch, ako je napríklad docker pull, použiť syntax %VARIABLE% .
set VERSION=latest
docker pull ubuntu:%VERSION%
Tu $VERSION obsahuje najnovšiu hodnotu, takže Docker bez problémov stiahne obraz ubuntu:latest . V prípade potreby môžete priradiť aj konkrétnu verziu, napríklad 18.04.
Správne definujte premenné
Problém s kopírovaním a vkladaním
Používatelia niekedy kopírujú príkazy z online tutoriálov alebo dokumentácie. Tieto kopírované príkazy môžu obsahovať skryté znaky, ako sú neviditeľné medzery, interpunkcia iná ako anglická alebo špeciálne úvodzovky. Tieto znaky môžu nenápadne poškodiť vaše príkazy Dockeru.
Aby ste sa tomu vyhli, je lepšie, ak je to možné, zadať príkaz sami alebo ho najskôr vložiť do textového editora, aby ste odstránili nechcené formátovanie.
Teraz, keď poznáte bežné príčiny chyby „Neplatný formát odkazu“ v Dockeri a ako ju opraviť, budete na dobrej ceste k tomu, aby ste sa tomuto problému v budúcnosti vyhli. Od kontroly veľkých písmen až po zabezpečenie správneho nastavenia premenných, tieto jednoduché tipy vám môžu ušetriť veľa času a frustrácie. Ak ste pripravení preskúmať ďalej, možno sa budete chcieť naučiť aj to, ako označiť a odoslať vlastné obrazy Dockeru do registra alebo ako vyčistiť nepoužívané obrazy, aby bol váš systém čistý.