Docker Invalide Reference Format

Docker Invalide Reference Format



När du arbetar med Docker-bilder eller Dockerfile kan du stöta på felet 'ogiltigt referensformat'.

I den här handledningen kommer vi att lära oss vad det här felet betyder, varför det uppstår och hur du kan lösa det i din Docker-användning.

Vad är en bildreferens i Docker?

I Docker hänvisar en bildreferens till en metod för att identifiera och lokalisera en specifik Docker-bild i Docker-registret (Docker Hub) eller den lokala Docker-värden.







Som standard består bildreferensen av två huvudkomponenter:



Repository – Den första delen definierar arkivet för målbilden. Detta är den högsta organisationsenheten för Docker-bilden, som huvudsakligen används för att representera organisationen eller individen som hanterar bilden. Du kan till exempel hitta en bild som heter Microsoft/SQL-server. I det här fallet representerar den första delen den organisation som upprätthåller bilden.



Tag – Den andra delen av en bild är en etikett som är kopplad till den specifika versionen eller varianten av bilden i förvaret. Bildtaggar kan representera olika versioner av samma bild, olika versioner eller olika kompatibilitet. Till exempel i bilden av nginx:latest där den senaste taggen refererar till den senaste versionen av Nginx-bilden.





När du anger bilden i antingen ett Dockerfile- eller docker-kommando måste bildnamnet följa följande namnregler:

  • Förvaringsnamnet ska vara gemener.
  • Lagret kan också innehålla bokstäver, siffror, bindestreck (-), understreck (_) eller snedstreck (/) för att indikera organisation eller gruppering inom ett register.
  • Inga blanksteg (mellanslag eller tabbar) ska finnas i bildnamnet.

Docker Ogiltigt referensformat

När du får felet 'ogiltigt referensformat' när du kör kommandot Dockerfile eller Docker betyder det att ditt namn inte har följt reglerna ovan.



Ett exempel är som visas:

$ docker pull BusyBox

Om vi ​​kör kommandot ovan kommer det att returnera ett fel som visas:

ogiltig referens format: förvarets namn måste vara gemener

I det här fallet talar den om för oss att bildnamnsformatet är felaktigt, eftersom bildnamnet alltid ska vara gemener.

Hur man åtgärdar Docker Invalid Reference Format Error

Som du kan gissa är den första metoden att se till att bildreferensformatet är korrekt. Detta inkluderar att verifiera att bildnamnet är giltigt.

Till exempel, i kommandot ovan kan vi fixa felet genom att ange bildnamnet som:

$ sudo docker pull busybox:senaste

I det här fallet bör kommandot hämta den senaste versionen av Busybox-bilden.

Metod 2 – Dela långa dockningskommandon

I vissa andra fall kan du stöta på felet 'ogiltigt referensformat' när du kör ett långt Docker-kommando.

I ett sådant fall är det bra att dela upp kommandot i flera rader. Metoden för kommandodelning beror på ditt skal och ditt system.

  • Men för Bash-skalet, använd flerrads escape-tecken eller omvänt snedstreck (\).
  • För PowerShell kan du använda backtick-tecknet (`).
  • Slutligen, om du är på kommandotolken kan du använda ett fälttecken som ^

Till exempel, på Bash, kör kommandot som:

$ sudo docker build \

-Det \

busybox \

sh

På PowerShell kan du köra kommandot som visas:

$ sudo hamnarbyggare `

-Det `

busybox `

sh

Och slutligen, om du är på kommandotolken, använd kommandot som visas:

$ sudo docker build ^

-Det ^

busybox ^

sh

Metod 3 – ${pwd} OCH $(pwd) sökväg

En annan vanlig orsak till detta fel är när du använder variabeln ${pwd}. Detta kan orsaka konflikt, beroende på vilken typ av skal som du kör kommandot på.

När det gäller PowerShell måste du använda variabeln ${pwd} istället för $(pwd).

Som du kan gissa, i fallet med Bash, använd parentesformatet istället för den krulliga inmatningen som $(pwd).

Slutsats

Det här inlägget diskuterade de främsta orsakerna till det 'ogiltiga referensformatet' när du arbetar med Dockerfile eller docker-kommandon. Vi undersökte också tre huvudmetoder som du kan använda för att lösa det här problemet.