Home
» Okna
»
Jak opravit chybu „Docker: Neplatný formát reference“
Jak opravit chybu „Docker: Neplatný formát reference“
Docker usnadňuje vytváření, spouštění a správu kontejnerů. Při spuštění nebo vytváření image se však můžete setkat s chybou „Neplatný formát reference“. Ve většině případů je to způsobeno drobnou chybou formátování v názvu nebo tagu image. Chyba může být například způsobena velkými písmeny, speciálními znaky nebo chybějícími hodnotami. Tato příručka vysvětlí běžné příčiny této chyby a jak ji opravit, aby se v budoucnu neopakovala.
Oprava chyby „Neplatný formát reference“
Pojďme zjistit nejčastější příčiny chyby „Neplatný formát reference“ a jak ji opravit:
Velká písmena v názvech obrázků
Docker vyžaduje, aby názvy obrázků byly malými písmeny. I jedno velké písmeno může způsobit chyby formátování. Například spuštění následujícího příkazu způsobí chybu:
docker pull NGINX
Názvy archivů musí být malými písmeny
Abyste se této chybě vyhnuli, vždy před spuštěním příkazu zkontrolujte, zda je název obrázku malými písmeny.
docker pull nginx
Používejte malá písmena
Speciální nebo neplatný znak
Uživatelé někdy omylem přidají znaky, které Docker nepovoluje. Patří mezi ně znaky @, mezery nebo znaky zkopírované z webové stránky nebo dokumentu, které vypadají normálně, ale nejsou.
Například následující příkaz obsahuje speciální znak @, který způsobí následující chybu:
docker run ubuntu@:latest
Chyba speciálního znaku
Chcete-li tuto chybu opravit, ujistěte se, že příkaz neobsahuje žádné nadbytečné znaky ani problémy s formátováním. Ke kontrole a vyčištění příkazu (v případě potřeby) můžete použít textový editor:
docker run ubuntu:latest
Vyhněte se speciálním znakům
Dvojtečka bez štítku
Jednou z nejčastějších chyb je umístit dvojtečku na konec názvu obrázku, ale neuvést jeho tag. Zkusme například následující příkaz pro stažení Node.
docker pull node:
Docker očekává za dvojtečkou hodnotu, například latest, 18-alpine nebo jakoukoli jinou platnou značku. Pokud není zadána žádná hodnota, název obrázku se považuje za neúplný a způsobí chybu „Neplatný formát reference“:
Dvojtečka bez štítku
Chcete-li tuto chybu opravit, přidejte za dvojtečku příslušný tag, aby byl název obrázku úplný a platný:
docker pull node:latest
Přidat tagy za dvojtečku
Cesta k souboru nebo připojení svazku obsahuje mezery
Pokud zahrnete cestu k souboru, která obsahuje mezery, zejména s volbami jako -v (připojení svazku), Docker může části cesty chybně interpretovat jako samostatné argumenty nebo dokonce jako součást názvu obrazu. V důsledku toho se můžete setkat s neočekávanými výsledky, jako je ten zobrazený níže:
docker run -v /home/user/My Folder:/app ubuntu
Mezery v názvech souborů
Abyste tomu předešli, vždy uzavřete cestu k souboru do uvozovek, jak je znázorněno níže:
docker run -v "/home/user/My Folder:/app" ubuntu
Nahraďte „/home/user/My Folder“ skutečnou cestou k adresáři, který chcete připojit do kontejneru.
Nevhodné použití proměnných
Při práci s Dockerem je běžné používat proměnné v příkazech, zejména při určování verzí imagí. Pokud však proměnná, jako je $VERSION, není správně nastavena, může Docker narazit na problémy, jako je chyba „Neplatný formát odkazu“.
Například spusťte následující příkaz pro stažení Ubuntu z Docker Hubu:
docker pull ubuntu:$VERSION
Zde má $VERSION představovat verzi obrazu Ubuntu, který chcete načíst. Pokud mu ale nepřiřadíte hodnotu, Docker interpretuje příkaz jako „docker pull ubuntu:“. Výsledkem je neplatný název obrazu, protože končí dvojtečkou a chybí mu požadovaný tag verze.
Nesprávné použití proměnných
Abyste tomu předešli, ujistěte se, že všechny proměnné použité v příkazu jsou správně definovány. V Linuxu můžete nastavit proměnnou pomocí následující syntaxe.
$VERSION=latest
Poté stáhněte zadanou verzi spuštěním následujícího příkazu.
docker pull ubuntu:$VERSION
V CMD systému Windows je třeba k definování proměnné (například verze) použít klíčové slovo set a poté na ni v příkazech, jako je docker pull, odkazovat pomocí syntaxe %VARIABLE% .
set VERSION=latest
docker pull ubuntu:%VERSION%
Zde $VERSION obsahuje nejnovější hodnotu, takže Docker bez problémů stáhne obraz ubuntu:latest . V případě potřeby můžete také přiřadit konkrétní verzi, například 18.04.
Správně definujte proměnné
Problém s kopírováním a vkládáním
Uživatelé někdy kopírují příkazy z online tutoriálů nebo dokumentace. Tyto kopírované příkazy mohou obsahovat skryté znaky, jako jsou neviditelné mezery, interpunkce neanglického původu nebo speciální uvozovky. Tyto znaky mohou nenápadně poškodit vaše příkazy Dockeru.
Abyste se tomu vyhnuli, je lepší si příkaz, pokud je to možné, napsat sami nebo jej nejprve vložit do textového editoru, abyste odstranili nežádoucí formátování.
Nyní, když znáte běžné příčiny chyby „Neplatný formát odkazu“ v Dockeru a jak ji opravit, budete na dobré cestě k tomu, abyste se tomuto problému v budoucnu vyhnuli. Od kontroly velkých písmen až po zajištění správného nastavení proměnných – tyto jednoduché tipy vám mohou ušetřit spoustu času a frustrace. Pokud jste připraveni zkoumat dále, možná se budete chtít také naučit, jak označovat a odesílat vlastní obrazy Dockeru do registru nebo jak čistit nepoužívané obrazy, aby váš systém zůstal čistý.