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?
- ”Virheellinen referenssimuoto” -virheen korjaaminen
- Kukkunimillä olevat isot kirjaimet
- Erityiset tai virheelliset merkit
- Kaksoispiste ilman tunnistetta
- Tiedostopolkut tai äänenvoimakkuuden kiinnikkeet välilyönteillä
- Muuttujan sopimaton käyttö
- Kopioi ja liitä ongelmia
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 NGINXTä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" ubuntuKorvaa “/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:$VERSIONTää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=latestVedä sitten määritetty versio suorittamalla seuraava komento.
docker pull ubuntu:$VERSIONWindows 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.













