Home
» Виндовс
»
Како поправити грешку „Докер: Неважећи формат референце“
Како поправити грешку „Докер: Неважећи формат референце“
Докер олакшава креирање, покретање и управљање контејнерима. Међутим, можете наићи на грешку „Неважећи формат референце“ приликом покретања или креирања слике. У већини случајева, то је због мање грешке у форматирању имена или ознаке слике. На пример, грешка може бити узрокована великим словима, специјалним карактерима или недостајућим вредностима. Овај водич ће објаснити уобичајене узроке ове грешке и како је поправити да бисте спречили да се поново догоди.
Исправите грешку „Неважећи формат референце“
Хајде да сазнамо најчешће узроке грешке „Неважећи формат референце“ и како их поправити:
Велика слова у називима слика
Докер захтева да имена слика буду малим словима. Чак и једно велико слово може проузроковати грешке у форматирању. На пример, покретање следеће команде ће резултирати грешком:
docker pull NGINX
Имена архива морају бити написана малим словима
Да бисте избегли ову грешку, увек проверите да ли је назив слике малим словима пре него што покренете команду.
docker pull nginx
Користите мала слова
Специјални или неважећи знак
Понекад корисници случајно додају знакове које Докер не дозвољава. То укључује знакове @, размаке или знакове копиране са веб странице или документа који изгледају нормално, али нису.
На пример, следећа команда садржи специјални знак @, што ће изазвати следећу грешку:
docker run ubuntu@:latest
Грешка у вези са специјалним карактером
Да бисте исправили ову грешку, уверите се да у команди нема додатних знакова или проблема са форматирањем. Можете користити обичан текстуални уређивач да бисте проверили и очистили команду (ако је потребно):
docker run ubuntu:latest
Избегавајте специјалне знакове
Дебело црево без ознаке
Једна од најчешћих грешака је стављање двотачке на крај имена слике, али не и укључивање ознаке. На пример, покушајмо следећу команду да бисмо преузели Node:
docker pull node:
Докер очекује вредност после двотачке, као што је 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“ стварном путањом до директоријума који желите да монтирате у контејнер.
Неприкладна употреба променљивих
Приликом рада са Докером, уобичајено је користити променљиве у командама, посебно приликом одређивања верзија слика. Међутим, ако променљива попут $VERSION није правилно подешена, Докер може наићи на проблеме попут грешке „Неважећи формат референце“.
На пример, покрените следећу команду да бисте преузели Убунту из Докер Хаба:
docker pull ubuntu:$VERSION
Овде, $VERSION треба да представља верзију Ubuntu слике коју желите да преузмете. Али ако јој не доделите вредност, Docker ће команду протумачити као „docker pull ubuntu:“. Ово резултира неважећим именом слике јер се завршава двотачком и недостаје јој потребна ознака верзије.
Неправилна употреба променљивих
Да бисте ово избегли, уверите се да су све променљиве које се користе у команди правилно дефинисане. У Линуксу можете подесити променљиву користећи следећу синтаксу.
$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 команде.
Да бисте ово избегли, боље је да сами откуцате команду када је то могуће или да је прво налепите у обичан текстуални едитор да бисте уклонили нежељено форматирање.
Сада када знате уобичајене узроке грешке „Неважећи формат референце“ у Докеру и како да је поправите, бићете на добром путу да избегнете овај проблем у будућности. Од провере писања великим словом до провере да ли су ваше променљиве правилно подешене, ови једноставни савети могу вам уштедети много времена и фрустрација. Ако сте спремни да истражујете даље, можда ћете желети да научите и како да означите и пошаљете своје прилагођене Докер слике у регистар или како да очистите неискоришћене слике да би ваш систем био чист.