Home
» Windows
»
Slik fikser du feilen «Docker: Ugyldig referanseformat»
Slik fikser du feilen «Docker: Ugyldig referanseformat»
Docker gjør det enkelt å bygge, kjøre og administrere containere. Du kan imidlertid støte på feilen «Ugyldig referanseformat» når du kjører eller bygger et bilde. I de fleste tilfeller skyldes dette en mindre formateringsfeil i bildenavnet eller taggen. Feilen kan for eksempel skyldes store bokstaver, spesialtegn eller manglende verdier. Denne veiledningen vil forklare de vanlige årsakene til denne feilen og hvordan du kan fikse den for å forhindre at den skjer igjen.
Rett feilen «Ugyldig referanseformat»
La oss finne ut de vanligste årsakene til feilen «Ugyldig referanseformat» og hvordan du fikser den:
Store bokstaver i bildenavn
Docker krever at bildenavn skal være små bokstaver. Selv én stor bokstav kan forårsake formateringsfeil. Hvis du for eksempel kjører følgende kommando, vil det resultere i en feil:
docker pull NGINX
Arkivnavn må være med små bokstaver
For å unngå denne feilen, må du alltid dobbeltsjekke at bildenavnet ditt er med små bokstaver før du kjører kommandoen.
docker pull nginx
Bruk små bokstaver
Spesialtegn eller ugyldig tegn
Noen ganger legger brukere ved et uhell til tegn som Docker ikke tillater. Disse inkluderer @-tegn, mellomrom eller tegn kopiert fra et nettsted eller et dokument som ser normale ut, men ikke er det.
For eksempel inneholder følgende kommando spesialtegnet @, som vil forårsake følgende feil:
docker run ubuntu@:latest
Spesialtegnfeil
For å fikse denne feilen, sørg for at det ikke er noen ekstra tegn eller formateringsproblemer i kommandoen. Du kan bruke en ren tekstredigerer til å sjekke og rydde opp i kommandoen (om nødvendig):
docker run ubuntu:latest
Unngå spesialtegn
Kolon uten tagg
En av de vanligste feilene er å sette et kolon på slutten av bildenavnet, men ikke inkludere taggen. La oss for eksempel prøve følgende kommando for å hente Node:
docker pull node:
Docker forventer en verdi etter kolon, for eksempel latest, 18-alpine eller en annen gyldig tag. Hvis ingen verdi oppgis, anses bildenavnet som ufullstendig og vil forårsake feilen «Ugyldig referanseformat»:
Kolon uten tagg
For å fikse denne feilen, legg til en passende tag etter kolon for å gjøre bildenavnet fullstendig og gyldig:
docker pull node:latest
Legg til tagger etter kolon
Filbanen eller volummonteringen inneholder mellomrom
Når du inkluderer en filsti som inneholder mellomrom, spesielt med alternativer som -v (volummontering), kan Docker feiltolke deler av stien som separate argumenter eller til og med som en del av bildenavnet. Som et resultat kan du støte på uventede resultater som det som vises nedenfor:
docker run -v /home/user/My Folder:/app ubuntu
Mellomrom i filnavn
For å unngå dette, må du alltid sette mellomrom i doble anførselstegn rundt filbanen, som vist nedenfor:
docker run -v "/home/user/My Folder:/app" ubuntu
Erstatt «/home/user/Min mappe» med den faktiske banen til mappen du vil montere i containeren.
Upassende bruk av variabler
Når man jobber med Docker, er det vanlig å bruke variabler i kommandoer, spesielt når man spesifiserer bildeversjoner. Men hvis en variabel som $VERSION ikke er riktig angitt, kan Docker støte på problemer som feilen «Ugyldig referanseformat».
For eksempel, kjør følgende kommando for å hente Ubuntu fra Docker Hub:
docker pull ubuntu:$VERSION
Her skal $VERSION representere versjonen av Ubuntu-imaget du vil hente. Men hvis du ikke tilordner en verdi til det, vil Docker tolke kommandoen som "docker pull ubuntu:". Dette resulterer i et ugyldig bildenavn fordi det slutter med et kolon og mangler den nødvendige versjonstaggen.
Feil bruk av variabler
For å unngå dette, sørg for at alle variabler som brukes i kommandoen er riktig definert. I Linux kan du angi en variabel ved hjelp av følgende syntaks.
$VERSION=latest
Hent deretter den angitte versjonen ved å kjøre følgende kommando.
docker pull ubuntu:$VERSION
I Windows CMD må du bruke nøkkelordet set til å definere en variabel (som version), og deretter bruke syntaksen %VARIABLE% til å referere til den i kommandoer som docker pull.
set VERSION=latest
docker pull ubuntu:%VERSION%
Her inneholder $VERSION den nyeste verdien, så Docker henter ubuntu:latest- avbildningen uten problemer. Du kan også tilordne en spesifikk versjon, for eksempel 18.04, om nødvendig.
Definer variabler riktig
Problem med å kopiere og lime inn
Noen ganger kopierer brukere kommandoer fra nettbaserte veiledninger eller dokumentasjon. Disse kopierte kommandoene kan inneholde skjulte tegn som usynlige mellomrom, ikke-engelsk tegnsetting eller spesielle anførselstegn. Disse tegnene kan i det stille ødelegge Docker-kommandoene dine.
For å unngå dette er det bedre å skrive kommandoen selv når det er mulig, eller lime inn kommandoen i et vanlig tekstredigeringsprogram først for å fjerne uønsket formatering.
Nå som du kjenner de vanlige årsakene til feilen «Ugyldig referanseformat» i Docker og hvordan du fikser den, er du godt på vei til å unngå dette problemet i fremtiden. Fra å sjekke bruk av store bokstaver til å sørge for at variablene dine er riktig angitt, kan disse enkle tipsene spare deg for mye tid og frustrasjon. Hvis du er klar til å utforske videre, kan det også være lurt å lære hvordan du tagger og sender dine tilpassede Docker-bilder til registeret, eller hvordan du rydder opp i ubrukte bilder for å holde systemet rent.