Kuinka korjata ”Docker: Virheellinen viitemuoto” -virhe

Docker helpottaa konttien rakentamista, ajamista ja hallintaa. Voit kuitenkin kohdata ”Virheellinen vertailumuoto”Virhe yrittäessään suorittaa tai rakentaa kuvaa. Useimmissa tapauksissa ongelma johtuu pienen muotoilun virheestä kuvanimessä tai tunnisteessa. Esimerkiksi se voi johtua isoista kirjaimista, erikoismerkeistä tai puuttuvasta arvosta. Tässä oppaassa selitän tämän virheen yleisiä syitä ja kuinka korjata ne estämään sen toistumista.

Sisällysluettelo

Mitä ”virheellinen viitemuoto” -virhe tarkoittaa Dockerissa?

Tämä virhe tapahtuu, kun Docker ei voi tulkita kuvanimesi muotoa. Jos nimi on virheellisesti jäsennelty, Docker ei käsittele pyyntöä ja heittää ”virheellisen referenssimuodon” -virheen.

Docker vaatii kuvanimien noudattavan tiettyä rakennetta toimiakseen oikein. Yleinen syntaksi on:

[registry/][repository][:tag]

Noudata näitä sääntöjä varmistaaksesi, että kuvanimesi on kelvollinen:

  • Käytä vain pieniä kirjaimia. Docker ei salli isoja kirjaimia kuvanimissä.
  • Voit sisällyttää numerot, tavutiedot (-), pisteet (.) Ja korostaa (_) erillisten sanojen tai versioiden, kuten my-app_v1.0: n, erottamiseen.
  • Välttää erityisiä Hahmot, kuten @, #,!, tai $, koska Docker ei hyväksy niitä.
  • Docker -kuvanimien on myös noudatettava DNS: n nimeämissääntöjä, mikä tarkoittaa, että jokaisen nimen osan (erotettuna viistoilla tai pisteillä) tulisi olla välillä 1–63 merkkiä pitkä, ja tavuvesiä ei voida sijoittaa jakson alussa tai lopussa.
  • Koko kuvanimen, mukaan lukien kaikki rekisterit ja tag -tiedot, on oltava yhteensä enintään 255 merkkiä.

”Virheellinen referenssimuoto” -virheen korjaaminen

Tutkitaan ”virheellisen viitemuodon” virheen yleisimmät syyt ja kuinka korjata ne:

Kukkunimillä olevat isot kirjaimet

Docker odottaa, että kuvanimet ovat kaikissa pienissä kirjaimissa. Jopa yksi pääoman kirjain voi aiheuttaa muodon rikkoutumisen. Esimerkiksi seuraava komennon suorittaminen aiheuttaa virheen:

docker pull NGINX

Tämän virheen välttämiseksi tarkista aina, että kuvan nimi on pienissä kirjaimissa ennen komennon suorittamista.

docker pull nginx

Erityiset tai virheelliset merkit

Joskus käyttäjät sisältävät vahingossa merkkejä, joita Docker ei salli. Nämä symbolit sisältävät @ -merkki, välilyöntejä tai merkkejä, jotka on kopioitu verkkosivustolta tai asiakirjasta, jotka näyttävät normaalilta, mutta eivät.

Esimerkiksi seuraava komento sisältää erikoismerkin @, joka aiheuttaa ilmoitetun virheen:

docker run ubuntu@:latest

Tämän virheen ratkaisemiseksi varmista, että komennossa ei ole ylimääräisiä merkkejä tai muotoilua. Voit tarkistaa ja puhdistaa komennon (tarvittaessa) voit käyttää tavallista tekstieditoria:

docker run ubuntu:latest

Kaksoispiste ilman tunnistetta

Yksi yleisimmistä virheistä on paksusuolen asettaminen kuvanimen lopuksi, mutta ei sisälly tunnistetta. Yritämme esimerkiksi seuraavaa komentoa vetääksesi solmun:

docker pull node:

Docker odottaa jotain paksusuolen jälkeen, kuten viimeisin, 18-alpine tai mikä tahansa muu kelvollinen tunniste. Jos mitään ei ole, kuvanimiä pidetään epätäydellisenä ja se aiheuttaa ”virheellisen referenssimuodon” -virheen:

Korjaa tämä lisää oikea tunniste paksusuolen jälkeen, jotta kuvan nimi on täydellinen ja kelvollinen:

docker pull node:latest

Tiedostopolkut tai äänenvoimakkuuden kiinnikkeet välilyönteillä

Kun sisällytät tiedostopolun, joka sisältää välilyöntejä, etenkin vaihtoehtojen kanssa-v(Volume kiinnitys), Docker voi tulkita polun osia väärin erillisinä argumenteina tai jopa osana kuvanimiä. Seurauksena on, että saatat kohdata odottamattomia tuloksia alla esitetyllä tavalla:

docker run -v /home/user/My Folder:/app ubuntu

Tämän välttämiseksi laita tiedostopolut aina kaksoislainausten sisälle, kuten alla on esitetty:

docker run -v "/home/user/My Folder:/app" ubuntu

Korvaa “/koti/käyttäjä/minun kansio” varsinaisella polulla kansioon, jonka haluat asentaa säiliöön.

Muuttujan sopimaton käyttö

Kun työskentelet Dockerin kanssa, on yleistä käyttää muuttujia komennoissa, etenkin kuvaversioiden määrittämisessä. Kuitenkin, jos muuttuja kuten$VERSIONEi ole asetettu oikein, Docker voi joutua ongelmiin, kuten ”virheellinen viitemuoto” -virhe.

Esimerkiksi, suoritamme seuraavan komennon vetääksesi Ubuntun Docker -keskuksesta:

docker pull ubuntu:$VERSION

Täällä$VERSIONon tarkoitus edustaa Ubuntu -kuvan versiota, jonka haluat vetää. Mutta jos et ole antanut sille mitään arvoa, Docker tulkitsee komennon nimellä “Docker veto ubuntu:”. Tämä johtaa virheelliseen kuvanimeen, koska se päättyy paksusuoleen ja puuttuu vaadittu versiotagi.

Tämän välttämiseksi varmista, että kaikki komennossa käytetyt muuttujat on määritelty oikein. Linuxissa voit asettaa muuttujan seuraavan syntaksin avulla.

Katso myös:Kuinka ajaa python -skripti Dockerin avulla

$VERSION=latest

Vedä sitten määritetty versio suorittamalla seuraava komento.

docker pull ubuntu:$VERSION

Windows CMD: ssä sinun on käytettäväsetAvainsana muuttujan määrittelemiseksi (kuten versio) ja sitten käyttää%VARIABLE%Syntaksi viitata siihen komentoissa, kuten Docker Pull.

set VERSION=latest
docker pull ubuntu:%VERSION%

Tässä,$VERSIONpitää arvon viimeisimmän, joten Docker vetää Ubuntu: Uusimman kuvan ilman ongelmia. Voit myös määrittää tietyn version, kuten 18.04, tarvittaessa.

Kopioi ja liitä ongelmia

Joskus käyttäjät kopioivat komennot online -opetusohjelmista tai asiakirjoista. Nämä kopioidut komennot voivat sisältää piilotettuja merkkejä, kuten näkymättömiä tiloja, ei-englantia välimerkkejä tai erityisiä lainausmerkkejä. Nämä merkit voivat rikkoa Docker -komennon hiljaa.

Tämän välttämiseksi on aina parempi kirjoittaa komento itse, kun mahdollista, tai liittää se ensin selkeään tekstieditoriin, jotta voit poistaa ei -toivotun muotoilun.

Kääriä

Nyt kun tiedät Dockerin ja niiden vastaavien korjausten "virheellisen referenssimuodon" virheen yleiset syyt, sinulla on paljon paremmassa asemassa välttääksesi tätä asiaa tulevaisuudessa. Kirjautumiskirjeiden tarkistamisesta muuttujien asettamiseen varmistamiseen, nämä yksinkertaiset vinkit voivat säästää paljon aikaa ja turhautumista. Jos olet valmis tutkimaan enemmän, kannattaa myös oppia merkitsemään ja työntämään omat mukautetut Docker -kuvat rekisteriin tai kuinka puhdistaa käyttämättömät kuvat järjestelmän järjestämiseksi.

Related Posts