Docker gjør det enkelt å bygge, kjøre og administrere containere. Du kan imidlertid støte på "Ugyldig referanseformat”-feil når du forsøker å kjøre eller bygge et bilde. I de fleste tilfeller er problemet forårsaket av en liten formateringsfeil i bildenavnet eller -koden. Det kan for eksempel skyldes store bokstaver, spesialtegn eller manglende verdi. I denne veiledningen forklarer jeg de vanlige årsakene til denne feilen og hvordan du kan fikse dem for å forhindre at det skjer igjen.
Innholdsfortegnelse
- Hva betyr feilen "Ugyldig referanseformat" i Docker?
- Retting av feilen "Ugyldig referanseformat".
- Store bokstaver i bildenavnet
- Spesialtegn eller ugyldige tegn
- Et kolon uten merke
- Filbaner eller volummonteringer med mellomrom
- Upassende bruk av variabel
- Kopier og lim inn problemer
Hva betyr feilen "Ugyldig referanseformat" i Docker?
Denne feilen oppstår når Docker ikke kan tolke formatet til bildenavnet ditt. Hvis navnet er feil strukturert, mislykkes Docker i å behandle forespørselen og sender feilen "ugyldig referanseformat".
Docker krever at bildenavn følger en bestemt struktur for å fungere riktig. Den generelle syntaksen er:
[registry/][repository][:tag]
Følg disse reglene for å sikre at bildenavnet ditt er gyldig:
- Bruk kun små bokstaver. Docker tillater ikke store bokstaver i bildenavn.
- Du kan inkludere tall, bindestreker (-), prikker (.) og understreker (_) for å skille ord eller versjoner, for eksempel my-app_v1.0.
- Unngå spesielle tegn som @, #, ! eller $, da Docker ikke godtar dem.
- Docker-bildenavn må også følge DNS-navneregler, noe som betyr at hver del av navnet (atskilt med skråstreker eller prikker) skal være mellom 1 og 63 tegn lange, og bindestreker kan ikke plasseres i begynnelsen eller slutten av en del.
- Det fullstendige bildenavnet, inkludert eventuell register- og taginformasjon, må ikke være mer enn 255 tegn totalt.
Retting av feilen "Ugyldig referanseformat".
La oss utforske de vanligste årsakene til feilen "ugyldig referanseformat" og hvordan du fikser dem:
Store bokstaver i bildenavnet
Docker forventer at bildenavn er med små bokstaver. Selv en enkelt stor bokstav kan føre til at formatet går i stykker. For eksempel vil kjøring av følgende kommando forårsake en feil:
docker pull NGINX
For å unngå denne feilen, dobbeltsjekk alltid at bildenavnet ditt er med små bokstaver før du kjører kommandoen.
docker pull nginx

Spesialtegn eller ugyldige tegn
Noen ganger inkluderer brukere ved et uhell tegn som Docker ikke tillater. Disse symbolene inkluderer @-tegnet, mellomrom eller tegn kopiert fra et nettsted eller et dokument som ser normale ut, men som ikke er det.
For eksempel inneholder følgende kommando et spesialtegn @, som vil forårsake den oppgitte feilen:
docker run ubuntu@:latest

For å løse denne feilen, sørg for at det ikke er noen ekstra tegn eller formateringsproblemer i kommandoen. Du kan bruke et vanlig tekstredigeringsprogram for å sjekke og rense kommandoen (hvis nødvendig):
docker run ubuntu:latest

Et kolon uten merke
En av de vanligste feilene er å plassere et kolon på slutten av bildenavnet, men ikke inkludere en tag. For eksempel prøver vi følgende kommando for å trekke Node:
docker pull node:
Docker forventer noe etter tykktarmen, for eksempel siste, 18-alpine eller en hvilken som helst annen gyldig tag. Hvis ingenting er oppgitt, anses bildenavnet som ufullstendig og vil forårsake feilen "ugyldig referanseformat":

For å fikse dette, legg til en riktig kode etter kolon for å gjøre bildenavnet komplett og gyldig:
docker pull node:latest

Filbaner eller volummonteringer med mellomrom
Når du inkluderer en filbane som inneholder mellomrom, spesielt med alternativer som-v(volummontering), kan Docker feiltolke deler av banen som separate argumenter eller til og med en del av bildenavnet. Som et resultat kan du støte på uventede resultater som vist nedenfor:
docker run -v /home/user/My Folder:/app ubuntu

For å unngå dette, sett alltid filstier med mellomrom innenfor doble anførselstegn, som vist nedenfor:
docker run -v "/home/user/My Folder:/app" ubuntu
Erstatt "/home/user/My Folder" med den faktiske banen til mappen du vil montere i beholderen.
Upassende bruk av variabel
Når du arbeider med Docker, er det vanlig å bruke variabler i kommandoer, spesielt når du spesifiserer bildeversjoner. Men hvis en variabel liker$VERSIONikke er satt riktig, kan Docker støte på problemer som feilen "ugyldig referanseformat".
For eksempel kjører vi følgende kommando for å hente Ubuntu fra Docker Hub:
RELATERT:Hvordan kjøre et Python-skript ved hjelp av Docker
docker pull ubuntu:$VERSION
Her, den$VERSIONer ment å representere versjonen av Ubuntu-bildet du vil trekke. Men hvis du ikke har tildelt noen verdi til den, tolker Docker kommandoen som "docker pull ubuntu:". Dette resulterer i et ugyldig bildenavn fordi det ender med et kolon og mangler den nødvendige versjonskoden.

For å unngå dette, sørg for at alle variabler som brukes i kommandoen er riktig definert. I Linux kan du angi en variabel ved å bruke følgende syntaks.
$VERSION=latest
Trekk deretter den angitte versjonen ved å utføre følgende kommando.
docker pull ubuntu:$VERSION
I Windows CMD må du brukesetnøkkelord for å definere en variabel (som versjonen), og bruk deretter%VARIABLE%syntaks for å referere til det i kommandoer som docker pull.
set VERSION=latest
docker pull ubuntu:%VERSION%
Her,$VERSIONholder verdien sist, så Docker henter ubuntu:siste-bildet uten problemer. Du kan også tilordne en spesifikk versjon, som 18.04, om nødvendig.

Kopier og lim inn problemer
Noen ganger kopierer brukere kommandoer fra nettbaserte opplæringsprogrammer eller dokumenter. Disse kopierte kommandoene kan inneholde skjulte tegn som usynlige mellomrom, ikke-engelsk tegnsetting eller spesielle anførselstegn. Disse karakterene kan i det stille bryte Docker-kommandoen din.
For å unngå dette, er det alltid bedre å skrive kommandoen selv når det er mulig eller lime den inn i et vanlig tekstredigeringsprogram først for å fjerne uønsket formatering.
Innpakning
Nå som du kjenner de vanlige årsakene til feilen "Ugyldig referanseformat" i Docker og deres respektive reparasjoner, er du i en mye bedre posisjon til å unngå dette problemet i fremtiden. Disse enkle tipsene kan spare deg for mye tid og frustrasjon, fra å se etter store bokstaver til å sørge for at variablene dine er riktig innstilt. Hvis du er klar til å utforske mer, vil du kanskje også lære hvordan du merker og skyver dine egne tilpassede Docker-bilder til et register eller hvordan du kan rydde opp i ubrukte bilder for å holde systemet organisert.














