Home
» Windows
»
Kā novērst kļūdu “Docker: Nederīgs atsauces formāts”
Kā novērst kļūdu “Docker: Nederīgs atsauces formāts”
Docker atvieglo konteineru veidošanu, palaišanu un pārvaldību. Tomēr, palaižot vai veidojot attēlu, var rasties kļūda "Nederīgs atsauces formāts". Vairumā gadījumu tas ir saistīts ar nelielu formatēšanas kļūdu attēla nosaukumā vai tagā. Piemēram, kļūda var būt saistīta ar lielajiem burtiem, speciālajām rakstzīmēm vai trūkstošām vērtībām. Šajā rokasgrāmatā ir paskaidroti šīs kļūdas biežākie cēloņi un to, kā to novērst, lai novērstu tās atkārtošanos.
Kļūdas “Nederīgs atsauces formāts” labošana
Noskaidrosim visbiežāk sastopamos kļūdas "Nederīgs atsauces formāts" cēloņus un to, kā to novērst:
Lielie burti attēlu nosaukumos
Docker pieprasa, lai attēlu nosaukumi būtu rakstīti ar mazajiem burtiem. Pat viens lielais burts var izraisīt formatēšanas kļūdas. Piemēram, izpildot šo komandu, radīsies kļūda:
docker pull NGINX
Arhīvu nosaukumiem jābūt ar mazajiem burtiem
Lai izvairītos no šīs kļūdas, pirms komandas palaišanas vienmēr pārbaudiet, vai attēla nosaukums ir ar mazajiem burtiem.
docker pull nginx
Izmantojiet mazos burtus
Īpaša vai nederīga rakstzīme
Dažreiz lietotāji nejauši pievieno rakstzīmes, kuras Docker neatļauj. Tās ietver @ zīmes, atstarpes vai no tīmekļa vietnes vai dokumenta kopētas rakstzīmes, kas izskatās normālas, bet nav normālas.
Piemēram, šajā komandā ir speciālā rakstzīme @, kas izraisīs šādu kļūdu:
docker run ubuntu@:latest
Īpašo rakstzīmju kļūda
Lai labotu šo kļūdu, pārliecinieties, vai komandā nav lieku rakstzīmju vai formatēšanas problēmu. Varat izmantot vienkārša teksta redaktoru, lai pārbaudītu un iztīrītu komandu (ja nepieciešams):
docker run ubuntu:latest
Izvairieties no īpašajām rakstzīmēm
Resnā zarna bez marķējuma
Viena no visbiežāk pieļautajām kļūdām ir attēla nosaukuma beigās ievietot kolu, bet neiekļaut tagu. Piemēram, mēģināsim izmantot šo komandu, lai izgūtu Node:
docker pull node:
Docker sagaida vērtību pēc kola, piemēram, latest, 18-alpine vai jebkuru citu derīgu tagu. Ja vērtība netiek norādīta, attēla nosaukums tiek uzskatīts par nepilnīgu un radīs kļūdu "Nederīgs atsauces formāts":
Resnā zarna bez marķējuma
Lai labotu šo kļūdu, pievienojiet atbilstošu tagu aiz kola, lai attēla nosaukums būtu pilns un derīgs:
docker pull node:latest
Pievienot tagus pēc kola
Faila ceļš vai sējuma pievienojums satur atstarpes
Ja iekļaujat faila ceļu, kurā ir atstarpes, īpaši ar tādām opcijām kā -v (sējuma pievienošana), Docker var nepareizi interpretēt ceļa daļas kā atsevišķus argumentus vai pat kā daļu no attēla nosaukuma. Tā rezultātā var rasties negaidīti rezultāti, piemēram, šādi:
docker run -v /home/user/My Folder:/app ubuntu
Atstarpes failu nosaukumos
Lai no tā izvairītos, faila ceļu vienmēr ievietojiet pēdiņās ar atstarpēm, kā parādīts tālāk:
docker run -v "/home/user/My Folder:/app" ubuntu
Aizvietojiet “/home/user/My Folder” ar faktisko ceļu uz direktoriju, kuru vēlaties pievienot konteineram.
Mainīgo lielumu neatbilstoša izmantošana
Strādājot ar Docker, komandās bieži tiek izmantoti mainīgie, īpaši norādot attēlu versijas. Tomēr, ja mainīgais, piemēram, $VERSION, nav pareizi iestatīts, Docker var rasties tādas problēmas kā kļūda "Nederīgs atsauces formāts".
Piemēram, palaidiet šo komandu, lai izvilktu Ubuntu no Docker Hub:
docker pull ubuntu:$VERSION
Šeit $VERSION ir paredzēts apzīmēt Ubuntu attēla versiju, kuru vēlaties izvilkt. Taču, ja jūs tai nepiešķirat vērtību, Docker interpretēs komandu kā "docker pull ubuntu:". Tas novedīs pie nederīga attēla nosaukuma, jo tas beidzas ar kolu un tam trūkst nepieciešamās versijas atzīmes.
Nepareiza mainīgo izmantošana
Lai no tā izvairītos, pārliecinieties, vai visi komandā izmantotie mainīgie ir pareizi definēti. Linux sistēmā mainīgo var iestatīt, izmantojot šādu sintaksi.
$VERSION=latest
Pēc tam izvelciet norādīto versiju, izpildot šo komandu.
docker pull ubuntu:$VERSION
Windows CMD sistēmā mainīgā (piemēram, versijas) definēšanai jāizmanto atslēgvārds “set”, un pēc tam komandās, piemēram, “docker pull”, uz to jāatsaucas ar sintaksi “%VARIABLE% .
set VERSION=latest
docker pull ubuntu:%VERSION%
Šeit $VERSION satur jaunāko vērtību, tāpēc Docker bez problēmām izgūst ubuntu:latest attēlu . Varat arī piešķirt konkrētu versiju, piemēram, 18.04, ja nepieciešams.
Pareizi definējiet mainīgos
Kopēšanas un ielīmēšanas problēma
Dažreiz lietotāji kopē komandas no tiešsaistes pamācībām vai dokumentācijas. Šīs kopētās komandas var saturēt slēptas rakstzīmes, piemēram, neredzamas atstarpes, neangļu valodas pieturzīmes vai īpašas pēdiņas. Šīs rakstzīmes var nemanāmi sabojāt jūsu Docker komandas.
Lai no tā izvairītos, ja iespējams, komandu labāk ierakstīt pašam vai vispirms ielīmēt to vienkāršā teksta redaktorā, lai noņemtu nevēlamo formatējumu.
Tagad, kad zināt biežāk sastopamos Docker kļūdas "Nederīgs atsauces formāts" cēloņus un to, kā to novērst, jūs būsiet ceļā uz to, lai nākotnē izvairītos no šīs problēmas. Sākot ar lielo burtu lietojuma pārbaudi un beidzot ar mainīgo pareizu iestatīšanu, šie vienkāršie padomi var ietaupīt daudz laika un neapmierinātības. Ja esat gatavs turpināt izpēti, iespējams, vēlēsities arī uzzināt, kā atzīmēt un ievietot pielāgotos Docker attēlus reģistrā vai kā iztīrīt neizmantotos attēlus, lai uzturētu sistēmu tīru.