Format de referință Docker Invalide

Format De Referinta Docker Invalide



Când lucrați cu imagini Docker sau Dockerfile, este posibil să întâlniți eroarea „format de referință nevalid”.

În acest tutorial, vom afla ce înseamnă această eroare, de ce apare și cum o puteți rezolva în utilizarea Docker.

Ce este o referință de imagine în Docker?

În Docker, o referință de imagine se referă la o metodă de identificare și localizare a unei anumite imagini Docker în registrul Docker (Docker Hub) sau gazda locală Docker.







În mod implicit, referința de imagine este compusă din două componente principale:



Repository – Prima parte definește depozitul pentru imaginea țintă. Aceasta este unitatea organizatorică de nivel superior pentru imaginea Docker, utilizată în principal pentru a reprezenta organizația sau persoana care gestionează imaginea. De exemplu, puteți găsi o imagine numită Microsoft/SQL-server. În acest caz, prima parte reprezintă organizația care menține imaginea.



Etichetă – A doua parte a unei imagini este o etichetă asociată cu versiunea sau varianta specifică a imaginii din depozit. Etichetele de imagine pot reprezenta versiuni diferite ale aceleiași imagini, versiuni diferite sau compatibilitate diferită. De exemplu, în imaginea lui nginx:latest unde cea mai recentă etichetă se referă la cea mai recentă versiune a imaginii Nginx.





Când specificați imaginea într-o comandă Dockerfile sau docker, numele imaginii trebuie să respecte următoarele reguli de denumire:

  • Numele depozitului trebuie să fie cu minuscule.
  • Depozitul poate conține, de asemenea, litere, cifre, cratime (-), liniuțe de subliniere (_) sau bare oblice (/) pentru a indica organizarea sau gruparea într-un registru.
  • În numele imaginii nu trebuie să existe niciun caracter de spații albe (spații sau file).

Format de referință Docker nevalid

Când primiți eroarea „format de referință nevalid” când rulați comanda Dockerfile sau Docker, înseamnă că numele dvs. nu a respectat regulile de mai sus.



Un exemplu este așa cum se arată:

$ docker pull BusyBox

Dacă rulăm comanda de mai sus, va returna o eroare așa cum se arată:

invalid referinţă format: numele depozitului trebuie să fie cu minuscule

În acest caz, ne spune că formatul numelui imaginii este incorect, deoarece numele imaginii ar trebui să fie întotdeauna cu litere mici.

Cum să remediați eroarea de format de referință nevalidă Docker

După cum puteți ghici, prima metodă este să vă asigurați că formatul de referință a imaginii este corect. Aceasta include verificarea faptului că numele imaginii este valid.

De exemplu, în comanda de mai sus, putem remedia eroarea specificând numele imaginii ca:

$ sudo docker pull busybox:latest

În acest caz, comanda ar trebui să extragă cea mai recentă versiune a imaginii Busybox.

Metoda 2 – Împărțiți comenzile Docker lungi

În alte cazuri, este posibil să întâmpinați eroarea „format de referință nevalid” atunci când rulați o comandă Docker lungă.

Într-un astfel de caz, împărțirea comenzii în mai multe linii este o bună practică. Metoda de împărțire a comenzilor va depinde de shell și de sistem.

  • Cu toate acestea, pentru shell Bash, utilizați caracterul de escape multilinie sau bara oblică inversă (\).
  • Pentru PowerShell, puteți utiliza caracterul backtick (`).
  • În cele din urmă, dacă sunteți în linia de comandă, puteți utiliza un caracter caret ca ^

De exemplu, pe Bash, rulați comanda ca:

$ sudo docker build \

-aceasta \

busybox \

SH

Pe PowerShell, puteți rula comanda așa cum se arată:

$ sudo docker build `

-aceasta `

busybox `

SH

Și, în sfârșit, dacă sunteți în linia de comandă, utilizați comanda așa cum se arată:

$ sudo docker build ^

-aceasta ^

busybox ^

SH

Metoda 3 – calea ${pwd} ȘI $(pwd).

O altă cauză comună a acestei erori este atunci când se utilizează variabila ${pwd}. Acest lucru poate provoca conflicte, în funcție de tipul de shell pe care executați comanda menționată.

În cazul PowerShell, trebuie să utilizați variabila ${pwd} în loc de $(pwd).

După cum puteți ghici, în cazul lui Bash, utilizați formatul de paranteză în loc de intrarea cu bretele ca $(pwd).

Concluzie

Această postare a discutat principalele cauze ale „formatului de referință nevalid” atunci când lucrați cu Dockerfile sau comenzile docker. De asemenea, am explorat trei metode principale pe care le puteți utiliza pentru a remedia această problemă.