Home
» Windows
»
Как да поправите грешката „Docker: Невалиден формат на препратката“
Как да поправите грешката „Docker: Невалиден формат на препратката“
Docker улеснява изграждането, изпълнението и управлението на контейнери. Въпреки това, може да срещнете грешка „Невалиден формат на референцията“, когато изпълнявате или изграждате изображение. В повечето случаи това се дължи на незначителна грешка във форматирането на името или етикета на изображението. Например, грешката може да се дължи на главни букви, специални символи или липсващи стойности. Това ръководство ще обясни често срещаните причини за тази грешка и как да я поправите, за да предотвратите повторното ѝ възникване.
Поправка на грешката „Невалиден формат на препратката“
Нека разберем най-честите причини за грешката „Невалиден формат на препратката“ и как да я поправим:
Главни букви в имената на изображенията
Docker изисква имената на изображенията да са с малки букви. Дори една главна буква може да причини грешки при форматиране. Например, изпълнението на следната команда ще доведе до грешка:
docker pull NGINX
Имената на архивите трябва да бъдат с малки букви
За да избегнете тази грешка, винаги проверявайте дали името на изображението е с малки букви, преди да изпълните командата.
docker pull nginx
Използвайте малки букви
Специален или невалиден символ
Понякога потребителите случайно добавят символи, които Docker не позволява. Те включват знаци @, интервали или символи, копирани от уебсайт или документ, които изглеждат нормални, но не са.
Например, следната команда съдържа специалния символ @, който ще доведе до следната грешка:
docker run ubuntu@:latest
Грешка със специален символ
За да коригирате тази грешка, уверете се, че няма излишни символи или проблеми с форматирането в командата. Можете да използвате текстов редактор, за да проверите и почистите командата (ако е необходимо):
docker run ubuntu:latest
Избягвайте специални символи
Дебело черво без етикет
Една от най-често срещаните грешки е да се постави двоеточие в края на името на изображението, но да не се включва тагът. Например, нека опитаме следната команда, за да изтеглим Node:
docker pull node:
Docker очаква стойност след двоеточието, като например latest, 18-alpine или друг валиден таг. Ако не е предоставена стойност, името на изображението се счита за непълно и ще предизвика грешка „Невалиден формат на препратката“:
Дебело черво без етикет
За да коригирате тази грешка, добавете подходящ етикет след двоеточието, за да направите името на изображението пълно и валидно:
docker pull node:latest
Добавете етикети след двоеточието
Пътят към файла или монтирането на тома съдържа интервали
Когато включите файлов път, който съдържа интервали, особено с опции като -v (монтиране на том), Docker може да интерпретира погрешно части от пътя като отделни аргументи или дори като част от името на изображението. В резултат на това може да се сблъскате с неочаквани резултати, като показания по-долу:
docker run -v /home/user/My Folder:/app ubuntu
Интервали в имената на файловете
За да избегнете това, винаги ограждайте пътя към файла с интервали в двойни кавички, както е показано по-долу:
docker run -v "/home/user/My Folder:/app" ubuntu
Заменете „/home/user/My Folder“ с действителния път до директорията, която искате да монтирате в контейнера.
Неподходящо използване на променливи
Когато работите с Docker, е обичайно да използвате променливи в команди, особено когато задавате версии на изображения. Ако обаче променлива като $VERSION не е зададена правилно, Docker може да срещне проблеми като грешката „Невалиден формат на препратката“.
Например, изпълнете следната команда, за да изтеглите Ubuntu от Docker Hub:
docker pull ubuntu:$VERSION
Тук $VERSION би трябвало да представлява версията на образа на Ubuntu, който искате да изтеглите. Но ако не му присвоите стойност, Docker ще интерпретира командата като „docker pull ubuntu:“. Това води до невалидно име на образ, защото завършва с двоеточие и липсва необходимият таг за версия.
Неправилно използване на променливи
За да избегнете това, уверете се, че всички променливи, използвани в командата, са правилно дефинирани. В Linux можете да зададете променлива, използвайки следния синтаксис.
$VERSION=latest
След това изтеглете посочената версия, като изпълните следната команда.
docker pull ubuntu:$VERSION
В Windows CMD трябва да използвате ключовата дума set, за да дефинирате променлива (като version), след което да използвате синтаксиса %VARIABLE%, за да я използвате в команди като docker pull.
set VERSION=latest
docker pull ubuntu:%VERSION%
Тук $VERSION съдържа най-новата стойност, така че Docker изтегля образа ubuntu:latest без никакви проблеми. Можете също така да зададете конкретна версия, например 18.04, ако е необходимо.
Дефинирайте променливите правилно
Проблем с копирането и поставянето
Понякога потребителите копират команди от онлайн уро��и или документация. Тези копирани команди могат да съдържат скрити символи, като например невидими интервали, пунктуационни знаци, различни от английски, или специални кавички. Тези символи могат незабелязано да повредят вашите Docker команди.
За да избегнете това, е по-добре да въведете командата сами, когато е възможно, или първо да я поставите в текстов редактор, за да премахнете нежеланото форматиране.
След като вече знаете често срещаните причини за грешката „Невалиден формат на препратката“ в Docker и как да я поправите, ще сте на път да избегнете този проблем в бъдеще. От проверка за главни букви до това да се уверите, че променливите ви са зададени правилно, тези прости съвети могат да ви спестят много време и разочарование. Ако сте готови да проучите по-нататък, може би ще искате да научите как да маркирате и поставяте персонализираните си Docker изображения в системния регистър или как да почиствате неизползваните изображения, за да поддържате системата си чиста.