Home
» Windows
»
Sådan rettes fejlen Docker: Ugyldigt referenceformat
Sådan rettes fejlen Docker: Ugyldigt referenceformat
Docker gør det nemt at bygge, køre og administrere containere. Du kan dog støde på fejlen "Ugyldigt referenceformat", når du kører eller bygger et billede. I de fleste tilfælde skyldes dette en mindre formateringsfejl i billedets navn eller tag. Fejlen kan f.eks. skyldes store bogstaver, specialtegn eller manglende værdier. Denne vejledning forklarer de almindelige årsager til denne fejl, og hvordan du retter den for at forhindre, at den sker igen.
Rettelse af fejlen "Ugyldigt referenceformat"
Lad os finde ud af de mest almindelige årsager til fejlen "Ugyldigt referenceformat", og hvordan du retter dem:
Store bogstaver i billednavne
Docker kræver, at billednavne skal være med små bogstaver. Selv et enkelt stort bogstav kan forårsage formateringsfejl. For eksempel vil kørsel af følgende kommando resultere i en fejl:
docker pull NGINX
Arkivnavne skal være med små bogstaver
For at undgå denne fejl skal du altid dobbelttjekke, at dit billednavn er med små bogstaver, før du kører kommandoen.
docker pull nginx
Brug små bogstaver
Specialtegn eller ugyldigt tegn
Nogle gange tilføjer brugere ved et uheld tegn, som Docker ikke tillader. Disse omfatter @-tegn, mellemrum eller tegn kopieret fra et websted eller et dokument, der ser normale ud, men ikke er det.
For eksempel indeholder følgende kommando specialtegnet @, hvilket vil forårsage følgende fejl:
docker run ubuntu@:latest
Fejl ved specialtegn
For at rette denne fejl skal du sørge for, at der ikke er ekstra tegn eller formateringsproblemer i kommandoen. Du kan bruge en almindelig teksteditor til at kontrollere og rydde op i kommandoen (hvis nødvendigt):
docker run ubuntu:latest
Undgå specialtegn
Tyktarm uden tag
En af de mest almindelige fejl er at sætte et kolon i slutningen af billednavnet, men ikke inkludere tagget. Lad os for eksempel prøve følgende kommando til at hente Node:
docker pull node:
Docker forventer en værdi efter kolon, f.eks. latest, 18-alpine eller et andet gyldigt tag. Hvis der ikke angives nogen værdi, betragtes billednavnet som ufuldstændigt og vil forårsage fejlen "Ugyldigt referenceformat":
Tyktarm uden tag
For at rette denne fejl skal du tilføje et passende tag efter kolonet for at gøre billednavnet fuldt og gyldigt:
docker pull node:latest
Tilføj tags efter kolon
Filsti eller volumenmontering indeholder mellemrum
Når du inkluderer en filsti, der indeholder mellemrum, især med indstillinger som -v (volume mount), kan Docker misfortolke dele af stien som separate argumenter eller endda som en del af billednavnet. Som følge heraf kan du støde på uventede resultater som det nedenfor viste:
docker run -v /home/user/My Folder:/app ubuntu
Mellemrum i filnavne
For at undgå dette skal du altid omslutte filstien med mellemrum i dobbelte anførselstegn, som vist nedenfor:
docker run -v "/home/user/My Folder:/app" ubuntu
Erstat "/home/user/Min mappe" med den faktiske sti til den mappe, du vil montere i containeren.
Uhensigtsmæssig brug af variabler
Når man arbejder med Docker, er det almindeligt at bruge variabler i kommandoer, især når man angiver billedversioner. Men hvis en variabel som $VERSION ikke er indstillet korrekt, kan Docker støde på problemer som fejlen "Ugyldigt referenceformat".
Kør for eksempel følgende kommando for at hente Ubuntu fra Docker Hub:
docker pull ubuntu:$VERSION
Her skal $VERSION repræsentere den version af Ubuntu-billedet, du vil hente. Men hvis du ikke tildeler en værdi til det, vil Docker fortolke kommandoen som "docker pull ubuntu:". Dette resulterer i et ugyldigt billednavn, fordi det slutter med et kolon og mangler det nødvendige versionstag.
Forkert brug af variabler
For at undgå dette skal du sørge for, at alle variabler, der bruges i kommandoen, er korrekt defineret. I Linux kan du indstille en variabel ved hjælp af følgende syntaks.
$VERSION=latest
Hent derefter den angivne version ved at udføre følgende kommando.
docker pull ubuntu:$VERSION
I Windows CMD skal du bruge nøgleordet set til at definere en variabel (f.eks. version) og derefter bruge syntaksen %VARIABLE% til at referere til den i kommandoer som f.eks. docker pull.
set VERSION=latest
docker pull ubuntu:%VERSION%
Her indeholder $VERSION den seneste værdi, så Docker henter ubuntu:latest- billedet uden problemer. Du kan også tildele en specifik version, f.eks. 18.04, hvis det er nødvendigt.
Definer variabler korrekt
Problem med at kopiere og indsætte
Nogle gange kopierer brugere kommandoer fra onlinevejledninger eller dokumentation. Disse kopierede kommandoer kan indeholde skjulte tegn såsom usynlige mellemrum, ikke-engelsk tegnsætning eller særlige anførselstegn. Disse tegn kan uopmærksomt beskadige dine Docker-kommandoer.
For at undgå dette er det bedre at skrive kommandoen selv, når det er muligt, eller først indsætte kommandoen i en almindelig teksteditor for at fjerne uønsket formatering.
Nu hvor du kender de almindelige årsager til fejlen "Ugyldigt referenceformat" i Docker, og hvordan du retter den, er du godt på vej til at undgå dette problem i fremtiden. Fra at kontrollere for store bogstaver til at sikre, at dine variabler er indstillet korrekt, kan disse enkle tips spare dig for en masse tid og frustration. Hvis du er klar til at udforske yderligere, kan du også lære, hvordan du tagger og pusher dine brugerdefinerede Docker-billeder til registreringsdatabasen, eller hvordan du rydder op i ubrugte billeder for at holde dit system rent.