„Docker“ netinkamas nuorodos formatas

Docker Netinkamas Nuorodos Formatas



Dirbdami su „Docker“ vaizdais arba „Dockerfile“, galite susidurti su klaida „netinkamas nuorodos formatas“.

Šiame vadove sužinosime, ką ši klaida reiškia, kodėl ji atsiranda ir kaip galite ją išspręsti naudodami „Docker“.

Kas yra „Docker“ vaizdo nuoroda?

„Docker“ vaizdo nuoroda reiškia konkretaus „Docker“ vaizdo identifikavimo ir vietos nustatymo „Docker“ registre („Docker Hub“) arba vietiniame „Docker“ pagrindiniame kompiuteryje metodą.







Pagal numatytuosius nustatymus vaizdo nuoroda susideda iš dviejų pagrindinių komponentų:



Saugykla – pirmoji dalis apibrėžia tikslinio vaizdo saugyklą. Tai aukščiausio lygio „Docker“ atvaizdo organizacinis vienetas, daugiausia naudojamas atstovauti organizacijai arba asmeniui, tvarkančiam vaizdą. Pavyzdžiui, galite rasti vaizdą pavadinimu Microsoft/SQL-server. Šiuo atveju pirmoji dalis reprezentuoja įvaizdį išlaikančią organizaciją.



Žyma – antroji vaizdo dalis yra etiketė, susieta su konkrečia vaizdo versija arba variantu saugykloje. Vaizdo žymos gali rodyti skirtingas to paties vaizdo versijas, skirtingus leidimus arba skirtingą suderinamumą. Pavyzdžiui, nginx:latest paveikslėlyje, kur naujausia žyma nurodo naujausią Nginx vaizdo versiją.





Nurodant vaizdą Dockerfile arba Docker komandoje, vaizdo pavadinimas turi atitikti šias pavadinimo taisykles:

  • Saugyklos pavadinimas turi būti rašomas mažosiomis raidėmis.
  • Saugykloje taip pat gali būti raidžių, skaičių, brūkšnelių (-), apatinių brūkšnių (_) arba pasvirųjų brūkšnių (/), nurodančių registro organizaciją arba grupavimą.
  • Vaizdo pavadinime neturi būti tarpų simbolių (tarpų ar skirtukų).

„Docker“ netinkamas nuorodos formatas

Kai gaunate klaidą „netinkamas nuorodos formatas“, kai paleisite „Dockerfile“ arba „Docker“ komandą, tai reiškia, kad jūsų vardas nesilaikė aukščiau pateiktų taisyklių.



Pavyzdys yra kaip parodyta:

$ docker pull BusyBox

Jei vykdysime aukščiau pateiktą komandą, ji grąžins klaidą, kaip parodyta:

negaliojančiais nuoroda formatas: saugyklos pavadinimas turi būti rašomas mažosiomis raidėmis

Šiuo atveju jis nurodo, kad vaizdo pavadinimo formatas yra neteisingas, nes vaizdo pavadinimas visada turi būti mažosios raidės.

Kaip ištaisyti „Docker“ netinkamo nuorodos formato klaidą

Kaip galite atspėti, pirmasis būdas yra užtikrinti, kad vaizdo nuorodos formatas yra teisingas. Tai apima patikrinimą, ar vaizdo pavadinimas yra tinkamas.

Pavyzdžiui, aukščiau pateiktoje komandoje galime ištaisyti klaidą nurodydami vaizdo pavadinimą kaip:

$ sudo docker pull busybox: naujausias

Tokiu atveju komanda turėtų ištraukti naujausią Busybox vaizdo versiją.

2 būdas – padalykite ilgąsias dokerio komandas

Kai kuriais kitais atvejais, vykdydami ilgą Docker komandą, galite susidurti su klaida „netinkamas nuorodos formatas“.

Tokiu atveju gera praktika yra padalinti komandą į kelias eilutes. Komandų padalijimo būdas priklausys nuo jūsų apvalkalo ir sistemos.

  • Tačiau Bash apvalkalui naudokite kelių eilučių pabėgimo simbolį arba pasvirąjį brūkšnį (\).
  • „PowerShell“ galite naudoti atgalinį simbolį (`).
  • Galiausiai, jei esate komandinėje eilutėje, galite naudoti simbolį caret kaip ^

Pavyzdžiui, „Bash“ paleiskite komandą taip:

$ sudo dokeris statyti \

-tai \

busybox \

sh

„PowerShell“ galite paleisti komandą, kaip parodyta:

$ sudo dokerio konstrukcija `

-tai `

busybox `

sh

Ir galiausiai, jei esate komandų eilutėje, naudokite komandą, kaip parodyta:

$ sudo docker build ^

-tai ^

busybox ^

sh

3 būdas – ${pwd} IR $(pwd) kelias

Kita dažna šios klaidos priežastis yra naudojant ${pwd} kintamąjį. Tai gali sukelti konfliktą, priklausomai nuo apvalkalo tipo, kuriame vykdote minėtą komandą.

„PowerShell“ atveju turite naudoti kintamąjį ${pwd}, o ne $(pwd).

Kaip galite atspėti, Bash atveju naudokite skliaustų formatą, o ne riestiniais skliaustais įvestą įvestį kaip $(pwd).

Išvada

Šiame įraše buvo aptartos pagrindinės „netinkamo nuorodos formato“ priežastys dirbant su „Dockerfile“ arba „docker“ komandomis. Taip pat ištyrėme tris pagrindinius būdus, kuriuos galite naudoti norėdami išspręsti šią problemą.