Неверный справочный формат Docker

Nevernyj Spravocnyj Format Docker



При работе с образами Docker или Dockerfile вы можете столкнуться с ошибкой «неверный ссылочный формат».

В этом руководстве мы узнаем, что означает эта ошибка, почему она возникает и как ее можно устранить при использовании Docker.

Что такое ссылка на изображение в Docker?

В Docker ссылка на изображение относится к методу идентификации и поиска определенного образа Docker в реестре Docker (Docker Hub) или на локальном хосте Docker.







По умолчанию ссылка на изображение состоит из двух основных компонентов:



Репозиторий. Первая часть определяет репозиторий для целевого изображения. Это организационная единица верхнего уровня для образа Docker, которая в основном используется для обозначения организации или лица, управляющего образом. Например, вы можете найти изображение с именем Microsoft/SQL-server. В данном случае первая часть представляет организацию, поддерживающую имидж.



Тег. Вторая часть изображения — это метка, связанная с конкретной версией или вариантом изображения в репозитории. Теги изображений могут представлять разные версии одного и того же изображения, разные выпуски или различную совместимость. Например, в образе nginx:latest, где последний тег относится к последней версии образа Nginx.





При указании образа в Dockerfile или команде docker имя образа должно соответствовать следующим правилам именования:

  • Имя репозитория должно быть в нижнем регистре.
  • Репозиторий также может содержать буквы, цифры, дефисы (-), символы подчеркивания (_) или косую черту (/) для обозначения организации или группировки в реестре.
  • В имени изображения не должно быть пробелов (пробелов или табуляции).

Неверный формат ссылки Docker

Когда вы получаете сообщение об ошибке «неверный формат ссылки» при запуске Dockerfile или команды Docker, это означает, что ваше имя не соответствует вышеуказанным правилам.



Пример такой:

$ докер вытащить BusyBox

Если мы запустим приведенную выше команду, она вернет ошибку, как показано:

неверный ссылка формат: имя репозитория должно быть в нижнем регистре

В этом случае это сообщает нам, что формат имени изображения неверен, поскольку имя изображения всегда должно быть в нижнем регистре.

Как исправить ошибку недопустимого формата ссылки Docker

Как вы можете догадаться, первый метод — убедиться в правильности формата ссылки на изображение. Это включает в себя проверку правильности имени изображения.

Например, в приведенной выше команде мы можем исправить ошибку, указав имя изображения как:

$ судо docker pull busybox: последний

В этом случае команда должна получить последнюю версию образа Busybox.

Метод 2 – разделение длинных команд Docker

В некоторых других случаях вы можете столкнуться с ошибкой «неверный формат ссылки» при выполнении длинной команды Docker.

В таком случае хорошей практикой является разделение команды на несколько строк. Метод разделения команд будет зависеть от вашей оболочки и системы.

  • Однако для оболочки Bash используйте многострочный escape-символ или обратную косую черту (\).
  • Для PowerShell вы можете использовать обратный апостроф (`).
  • Наконец, если вы находитесь в командной строке, вы можете использовать символ каретки как ^

Например, в Bash запустите команду так:

$ судо сборка докера \

-это \

занятой ящик \

ш

В PowerShell вы можете запустить команду, как показано:

$ судо сборка докера `

-это `

занятой ящик `

ш

И, наконец, если вы находитесь в командной строке, используйте команду, как показано:

$ судо сборка докера ^

-это ^

занятой ящик ^

ш

Способ 3 – путь ${pwd} И $(pwd)

Другая распространенная причина этой ошибки — использование переменной ${pwd}. Это может вызвать конфликт в зависимости от типа оболочки, в которой вы выполняете указанную команду.

В случае PowerShell вам необходимо использовать переменную ${pwd} вместо $(pwd).

Как вы можете догадаться, в случае Bash используйте формат круглых скобок вместо ввода в виде фигурных скобок как $(pwd).

Заключение

В этом посте обсуждались основные причины «недопустимого формата ссылки» при работе с Dockerfile или командами docker. Мы также рассмотрели три основных метода, которые можно использовать для решения этой проблемы.