Home
» PC Советы
»
Как исправить ошибку «Docker: недопустимый формат ссылки»
Как исправить ошибку «Docker: недопустимый формат ссылки»
Зарегистрируйтесь и зарабатывайте 1000$ в день ⋙
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 может столкнуться с такими проблемами, как ошибка «Invalid Reference Format».
Например, выполните следующую команду, чтобы извлечь 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 в реестр, а также как очищать неиспользуемые образы для поддержания чистоты системы.