Neplatný referenčný formát Docker

Neplatny Referencny Format Docker



Pri práci s obrázkami Docker alebo Dockerfile sa môže vyskytnúť chyba „neplatný referenčný formát“.

V tomto návode sa dozvieme, čo táto chyba znamená, prečo sa vyskytuje a ako ju môžete vyriešiť pri používaní Dockeru.

Čo je to obrázková referencia v Dockeri?

V Dockeri sa odkaz na obrázok vzťahuje na metódu identifikácie a lokalizácie konkrétneho obrázku Docker v registri Docker (Docker Hub) alebo lokálnom hostiteľovi Docker.







V predvolenom nastavení sa referenčný obrázok skladá z dvoch hlavných komponentov:



Úložisko – Prvá časť definuje úložisko pre cieľový obrázok. Toto je organizačná jednotka najvyššej úrovne pre obrázok Docker, ktorá sa používa hlavne na reprezentáciu organizácie alebo jednotlivca, ktorý obrázok spravuje. Môžete napríklad nájsť obrázok s názvom Microsoft/SQL-server. V tomto prípade prvá časť predstavuje organizáciu udržiavajúcu imidž.



Značka – Druhá časť obrázka je štítok spojený s konkrétnou verziou alebo variantom obrázka v rámci úložiska. Značky obrázkov môžu predstavovať rôzne verzie toho istého obrázka, rôzne vydania alebo rôznu kompatibilitu. Napríklad na obrázku nginx:latest, kde najnovšia značka odkazuje na najnovšiu verziu obrázka Nginx.





Pri zadávaní obrázka v príkaze Dockerfile alebo docker musí názov obrázka spĺňať nasledujúce pravidlá pomenovania:

  • Názov úložiska by mal byť malými písmenami.
  • Úložisko môže obsahovať aj písmená, čísla, spojovníky (-), podčiarkovníky (_) alebo lomky (/) na označenie organizácie alebo zoskupenia v rámci registra.
  • V názve obrázka by nemali byť žiadne medzery (medzery alebo tabulátory).

Neplatný referenčný formát Docker

Keď sa pri spustení príkazu Dockerfile alebo Docker zobrazí chyba „neplatný referenčný formát“, znamená to, že vaše meno nedodržalo vyššie uvedené pravidlá.



Príklad je uvedený:

$ docker vytiahnuť BusyBox

Ak spustíme vyššie uvedený príkaz, vráti chybu, ako je znázornené:

neplatný odkaz formát: názov úložiska musí byť malými písmenami

V tomto prípade nám to hovorí, že formát názvu obrázka je nesprávny, pretože názov obrázka by mal byť vždy malými písmenami.

Ako opraviť chybu neplatného referenčného formátu Docker

Ako môžete hádať, prvou metódou je zabezpečenie správneho referenčného formátu obrázka. To zahŕňa overenie platnosti názvu obrázka.

Napríklad vo vyššie uvedenom príkaze môžeme opraviť chybu zadaním názvu obrázka ako:

$ sudo docker pull busybox:najnovšie

V tomto prípade by mal príkaz stiahnuť najnovšiu verziu obrazu Busybox.

Metóda 2 – Rozdelenie dlhých príkazov Docker

V niektorých iných prípadoch sa pri spustení dlhého príkazu Docker môžete stretnúť s chybou „neplatný referenčný formát“.

V takom prípade je dobrým postupom rozdeliť príkaz do viacerých riadkov. Spôsob rozdelenia príkazov bude závisieť od vášho shellu a systému.

  • Pre Bash shell však použite viacriadkový znak alebo spätnú lomku (\).
  • V prostredí PowerShell môžete použiť znak backtick (`).
  • Nakoniec, ak ste na príkazovom riadku, môžete použiť znak vsuvky ako ^

Napríklad na Bash spustite príkaz ako:

$ sudo zostava docker \

-to \

busybox \

sh

V prostredí PowerShell môžete príkaz spustiť takto:

$ sudo zostava dockera `

-to `

busybox `

sh

A nakoniec, ak ste na príkazovom riadku, použite príkaz, ako je znázornené:

$ sudo zostava dockera ^

-to ^

busybox ^

sh

Metóda 3 – ${pwd} A $(pwd) cesta

Ďalšou častou príčinou tejto chyby je použitie premennej ${pwd}. To môže spôsobiť konflikt v závislosti od typu shellu, na ktorom vykonávate uvedený príkaz.

V prípade PowerShell musíte namiesto $(pwd) použiť premennú ${pwd}.

Ako môžete hádať, v prípade Bash použite formát zátvoriek namiesto vstupu so zloženými zátvorkami ako $(pwd).

Záver

Tento príspevok diskutoval o hlavných príčinách „neplatného referenčného formátu“ pri práci s príkazmi Dockerfile alebo docker. Preskúmali sme tiež tri hlavné metódy, ktoré môžete použiť na vyriešenie tohto problému.