Docker Invalide Reference Format

Docker Invalide Reference Format



Kun työskentelet Docker-kuvien tai Dockerfilen kanssa, saatat kohdata virheellisen viitemuodon.

Tässä opetusohjelmassa opimme, mitä tämä virhe tarkoittaa, miksi se ilmenee ja kuinka voit ratkaista sen Dockerin käytössä.

Mikä on kuvaviittaus Dockerissa?

Dockerissa kuvaviittauksella tarkoitetaan menetelmää tietyn Docker-kuvan tunnistamiseksi ja paikantamiseksi Docker-rekisterissä (Docker Hub) tai paikallisessa Docker-isäntäkoneessa.







Oletusarvoisesti kuvaviite koostuu kahdesta pääkomponentista:



Arkisto – Ensimmäinen osa määrittelee kohdekuvan arkiston. Tämä on Docker-kuvan ylimmän tason organisaatioyksikkö, jota käytetään pääasiassa edustamaan organisaatiota tai kuvaa hallinnoivaa henkilöä. Löydät esimerkiksi kuvan nimeltä Microsoft/SQL-server. Tässä tapauksessa ensimmäinen osa edustaa imagoa ylläpitävää organisaatiota.



Tunniste – Kuvan toinen osa on tarra, joka liittyy kuvan tiettyyn versioon tai muunnelmaan arkiston sisällä. Kuvatunnisteet voivat edustaa saman kuvan eri versioita, eri julkaisuja tai erilaista yhteensopivuutta. Esimerkiksi kuvassa nginx:latest, jossa viimeisin tagi viittaa Nginx-kuvan uusimpaan versioon.





Kun määrität kuvan joko Dockerfile- tai Docker-komennossa, kuvan nimen on noudatettava seuraavia nimeämissääntöjä:

  • Arkiston nimen tulee olla pienillä kirjaimilla.
  • Tietovarasto voi sisältää myös kirjaimia, numeroita, yhdysmerkkejä (-), alaviivoja (_) tai vinoviivaa (/) osoittamaan organisaation tai ryhmittelyn rekisterissä.
  • Kuvan nimessä ei saa olla välilyöntejä (välilyöntejä tai sarkaimia).

Docker on virheellinen viitemuoto

Kun saat 'virheellisen viitemuodon' -virheen suorittaessasi Dockerfile- tai Docker-komentoa, se tarkoittaa, että nimesi ei ole noudattanut yllä olevia sääntöjä.



Esimerkki on seuraavanlainen:

$ telakka vetää BusyBox

Jos suoritamme yllä olevan komennon, se palauttaa virheen kuvan mukaisesti:

virheellinen viite muoto: arkiston nimen on oltava pieni

Tässä tapauksessa se kertoo meille, että kuvan nimen muoto on väärä, koska kuvan nimen tulee aina olla pieniä kirjaimia.

Kuinka korjata Dockerin virheellinen viitemuotovirhe

Kuten voit arvata, ensimmäinen menetelmä on varmistaa, että kuvan viitemuoto on oikea. Tämä sisältää kuvan nimen oikeellisuuden tarkistamisen.

Esimerkiksi yllä olevassa komennossa voimme korjata virheen määrittämällä kuvan nimen seuraavasti:

$ sudo docker pull busybox: uusin

Tässä tapauksessa komennon tulee noutaa Busybox-kuvan uusin versio.

Tapa 2 – Jaa pitkät Docker-komennot

Joissakin muissa tapauksissa saatat kohdata 'virheellinen viitemuoto' -virhe, kun suoritat pitkää Docker-komentoa.

Tällaisessa tapauksessa komennon jakaminen useille riveille on hyvä käytäntö. Komentojen jakamismenetelmä riippuu komentotulkistasi ja järjestelmästäsi.

  • Käytä kuitenkin Bash-kuoressa monirivistä estomerkkiä tai kenoviivaa (\).
  • PowerShellissä voit käyttää backtick-merkkiä (`).
  • Lopuksi, jos olet komentokehotteessa, voit käyttää caret-merkkiä muodossa ^

Suorita esimerkiksi Bashissa komento seuraavasti:

$ sudo telakka rakentaa \

-se \

varattu laatikko \

sh

PowerShellissä voit suorittaa komennon kuvan mukaisesti:

$ sudo telakkarakennelma `

-se `

varattu laatikko `

sh

Ja lopuksi, jos olet komentokehotteessa, käytä seuraavaa komentoa:

$ sudo telakka rakentaa ^

-se ^

varattu laatikko ^

sh

Tapa 3 – ${pwd} JA $(pwd) polku

Toinen yleinen syy tähän virheeseen on muuttujan ${pwd} käyttö. Tämä voi aiheuttaa ristiriitoja riippuen komentotulkin tyypistä, jolla suoritat mainittua komentoa.

PowerShellin tapauksessa sinun on käytettävä ${pwd} muuttujaa $(pwd) sijaan.

Kuten voit arvata, Bashin tapauksessa käytä sulkumuotoa aaltosulkeisen syötteen sijaan $(pwd).

Johtopäätös

Tässä viestissä käsiteltiin 'virheellisen viitemuodon' johtavia syitä työskenneltäessä Dockerfile- tai Docker-komentojen kanssa. Tutkimme myös kolmea päätapaa, joilla voit korjata tämän ongelman.