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 потрібно використовувати ключове слово set для визначення змінної (наприклад, version), а потім використовувати синтаксис %VARIABLE% для посилання на неї в командах, таких як docker pull.
set VERSION=latest
docker pull ubuntu:%VERSION%
Тут $VERSION містить найновіше значення, тому Docker без проблем отримує образ ubuntu:latest . Ви також можете призначити певну версію, наприклад, 18.04, за потреби.
Правильно визначте змінні
Проблема з копіюванням та вставкою
Іноді користувачі копіюють команди з онлайн-посібників або документації. Ці скопійовані команди можуть містити приховані символи, такі як невидимі пробіли, неанглійські розділові знаки або спеціальні лапки. Ці символи можуть непомітно пошкодити ваші команди Docker.
Щоб уникнути цього, краще ввести команду самостійно, коли це можливо, або спочатку вставити команду у звичайний текстовий редактор, щоб видалити небажане форматування.
Тепер, коли ви знаєте поширені причини помилки «Недійсний формат посилання» в Docker та способи її виправлення, ви будете на шляху до уникнення цієї проблеми в майбутньому. Від перевірки вживання великих літер до правильного налаштування змінних – ці прості поради можуть заощадити вам багато часу та зусиль. Якщо ви готові до подальшого дослідження, ви також можете дізнатися, як позначати тегами та завантажувати власні образи Docker до реєстру або як очищати невикористовувані образи, щоб підтримувати чистоту системи.