Home
» Windows
»
Kuinka korjata virhe Docker: Virheellinen viitemuoto
Kuinka korjata virhe Docker: Virheellinen viitemuoto
Docker helpottaa säilöjen rakentamista, suorittamista ja hallintaa. Saatat kuitenkin kohdata virheen "Virheellinen viitemuoto" kuvaa suoritettaessa tai rakennettaessa. Useimmissa tapauksissa tämä johtuu kuvan nimessä tai tunnisteessa olevasta pienestä muotoiluvirheestä. Virhe voi johtua esimerkiksi isoista kirjaimista, erikoismerkeistä tai puuttuvista arvoista. Tässä oppaassa selitetään tämän virheen yleiset syyt ja kuinka se korjataan, jotta se ei toistu.
Korjaa virhe "Virheellinen viittausmuoto"
Selvitetään yleisimmät "Virheellinen viittausmuoto" -virheen syyt ja niiden korjaaminen:
Isot kirjaimet kuvien nimissä
Docker vaatii, että kuvien nimet ovat pieniä kirjaimia. Jopa yksi iso kirjain voi aiheuttaa muotoiluvirheitä. Esimerkiksi seuraavan komennon suorittaminen aiheuttaa virheen:
docker pull NGINX
Arkistojen nimien on oltava pieniä kirjaimia
Tämän virheen välttämiseksi tarkista aina, että kuvan nimi on kirjoitettu pienillä kirjaimilla ennen komennon suorittamista.
docker pull nginx
Käytä pieniä kirjaimia
Erikoismerkki tai virheellinen merkki
Joskus käyttäjät lisäävät vahingossa merkkejä, joita Docker ei salli. Näitä ovat @-merkit, välilyönnit tai verkkosivustolta tai dokumentista kopioidut merkit, jotka näyttävät normaaleilta, mutta eivät ole.
Esimerkiksi seuraava komento sisältää erikoismerkin @, joka aiheuttaa seuraavan virheen:
docker run ubuntu@:latest
Erikoismerkkivirhe
Korjaa tämä virhe varmistamalla, ettei komennossa ole ylimääräisiä merkkejä tai muotoiluongelmia. Voit tarkistaa ja puhdistaa komennon (tarvittaessa) tavallisella tekstieditorilla:
docker run ubuntu:latest
Vältä erikoismerkkejä
Kaksoispiste ilman tunnistetta
Yksi yleisimmistä virheistä on lisätä kaksoispiste kuvan nimen loppuun, mutta jättää tagi pois. Kokeillaan esimerkiksi seuraavaa komentoa Noden hakemiseksi:
docker pull node:
Docker odottaa kaksoispisteen jälkeen arvoa, kuten latest, 18-alpine tai mitä tahansa muuta kelvollista tunnistetta. Jos arvoa ei anneta, kuvan nimeä pidetään epätäydellisenä ja se aiheuttaa virheen "Invalid Reference Format":
Kaksoispiste ilman tunnistetta
Korjaa tämä virhe lisäämällä sopiva tunniste kaksoispisteen jälkeen, jotta kuvan nimi on täydellinen ja kelvollinen:
docker pull node:latest
Lisää tunnisteet kaksoispisteen jälkeen
Tiedostopolku tai taltion liitoskohta sisältää välilyöntejä
Kun lisäät tiedostopolun, joka sisältää välilyöntejä, erityisesti käytettäessä asetuksia kuten -v (taltion liittäminen), Docker saattaa tulkita osia polusta virheellisesti erillisiksi argumenteiksi tai jopa osaksi kuvan nimeä. Tämän seurauksena saatat kohdata odottamattomia tuloksia, kuten alla olevan esimerkin:
docker run -v /home/user/My Folder:/app ubuntu
Välilyönnit tiedostonimissä
Tämän välttämiseksi kirjoita tiedostopolku aina lainausmerkkeihin ja välilyönteihin, kuten alla on esitetty:
docker run -v "/home/user/My Folder:/app" ubuntu
Korvaa ”/home/user/Oma kansio” sen hakemiston todellisella polulla, jonka haluat liittää säiliöön.
Muuttujien sopimaton käyttö
Dockerin kanssa työskenneltäessä on yleistä käyttää muuttujia komennoissa, erityisesti kuvaversioita määritettäessä. Jos muuttujaa, kuten $VERSION, ei ole asetettu oikein, Docker voi kohdata ongelmia, kuten "Invalid Reference Format" -virheen.
Suorita esimerkiksi seuraava komento vetääksesi Ubuntun Docker Hubista:
docker pull ubuntu:$VERSION
Tässä $VERSION-muuttuja on tarkoitettu edustamaan noudettavan Ubuntu-levykuvan versiota. Mutta jos et anna sille arvoa, Docker tulkitsee komennon muodossa "docker pull ubuntu:". Tämä johtaa virheelliseen levykuvan nimeen, koska se päättyy kaksoispisteeseen ja siitä puuttuu pakollinen versiotunniste.
Muuttujien virheellinen käyttö
Tämän välttämiseksi varmista, että kaikki komennossa käytetyt muuttujat on määritelty oikein. Linuxissa voit asettaa muuttujan seuraavalla syntaksilla.
$VERSION=latest
Vedä sitten määritetty versio suorittamalla seuraava komento.
docker pull ubuntu:$VERSION
Windowsin komentokehotteessa sinun on käytettävä avainsanaa set määrittääksesi muuttujan (kuten version) ja käytettävä sitten %VARIABLE% -syntaksia viitataksesi siihen komennoissa, kuten docker pull.
set VERSION=latest
docker pull ubuntu:%VERSION%
Tässä $VERSION sisältää uusimman arvon, joten Docker hakee ubuntu:latest- kuvan ongelmitta. Voit myös tarvittaessa määrittää tietyn version, kuten 18.04.
Määrittele muuttujat oikein
Kopioi ja liitä -ongelma
Joskus käyttäjät kopioivat komentoja verkko-opetusohjelmista tai dokumentaatiosta. Nämä kopioidut komennot voivat sisältää piilotettuja merkkejä, kuten näkymättömiä välilyöntejä, muita kuin englanninkielisiä välimerkkejä tai erikoislainausmerkkejä. Nämä merkit voivat hiljaa vääristää Docker-komentojasi.
Tämän välttämiseksi on parempi kirjoittaa komento itse, kun mahdollista, tai liittää se ensin tavalliseen tekstieditoriin poistaaksesi ei-toivotut muotoilut.
Nyt kun tiedät Dockerin "Invalid Reference Format" -virheen yleisimmät syyt ja kuinka korjata se, olet hyvällä tiellä välttääksesi tämän ongelman tulevaisuudessa. Isojen kirjainten tarkistamisesta muuttujien oikean asettamisen varmistamiseen, nämä yksinkertaiset vinkit voivat säästää paljon aikaa ja turhautumista. Jos olet valmis tutkimaan asiaa tarkemmin, kannattaa ehkä myös oppia, miten voit merkitä ja siirtää mukautettuja Docker-kuvia rekisteriin tai miten voit siivota käyttämättömiä kuvia järjestelmän pitämiseksi puhtaana.