Docker Invalide Reference Format

Docker Invalide Reference Format



Når du arbeider med Docker-bilder eller Dockerfile, kan du støte på feilen 'ugyldig referanseformat'.

I denne opplæringen vil vi lære hva denne feilen betyr, hvorfor den oppstår, og hvordan du kan løse den i Docker-bruken din.

Hva er en bildereferanse i Docker?

I Docker refererer en bildereferanse til en metode for å identifisere og lokalisere et spesifikt Docker-bilde i Docker-registeret (Docker Hub) eller den lokale Docker-verten.







Som standard består bildereferansen av to hovedkomponenter:



Repository – Den første delen definerer depotet for målbildet. Dette er den øverste organisasjonsenheten for Docker image, hovedsakelig brukt til å representere organisasjonen eller individet som administrerer bildet. For eksempel kan du finne et bilde som heter Microsoft/SQL-server. I dette tilfellet representerer den første delen organisasjonen som opprettholder bildet.



Tag – Den andre delen av et bilde er en etikett knyttet til den spesifikke versjonen eller varianten av bildet i depotet. Bildekoder kan representere forskjellige versjoner av det samme bildet, forskjellige utgivelser eller ulik kompatibilitet. For eksempel i bildet av nginx:latest der den siste taggen refererer til den nyeste versjonen av Nginx-bildet.





Når du spesifiserer bildet i enten en Dockerfile- eller docker-kommando, må bildenavnet følge følgende navneregler:

  • Lagringsnavnet skal være små bokstaver.
  • Lagret kan også inneholde bokstaver, tall, bindestreker (-), understreker (_) eller skråstreker (/) for å indikere organisasjon eller gruppering i et register.
  • Ingen mellomrom (mellomrom eller tabulatorer) skal være i bildenavnet.

Docker Ugyldig referanseformat

Når du får feilmeldingen 'ugyldig referanseformat' når du kjører kommandoen Dockerfile eller Docker, betyr det at navnet ditt ikke har overholdt reglene ovenfor.



Et eksempel er som vist:

$ docker pull BusyBox

Hvis vi kjører kommandoen ovenfor, vil den returnere en feil som vist:

ugyldig henvisning format: arkivnavnet må være små bokstaver

I dette tilfellet forteller den oss at formatet på bildenavnet er feil, da bildenavnet alltid skal være små bokstaver.

Slik fikser du Docker Invalid Reference Format Error

Som du kan gjette, er den første metoden å sikre at bildereferanseformatet er riktig. Dette inkluderer å bekrefte at bildenavnet er gyldig.

For eksempel, i kommandoen ovenfor, kan vi fikse feilen ved å spesifisere bildenavnet som:

$ sudo docker pull busybox: siste

I dette tilfellet skal kommandoen hente den nyeste versjonen av Busybox-bildet.

Metode 2 – Del opp lange docker-kommandoer

I noen andre tilfeller kan du støte på feilen 'ugyldig referanseformat' når du kjører en lang Docker-kommando.

I slike tilfeller er det god praksis å dele kommandoen i flere linjer. Metoden for kommandodeling vil avhenge av skallet og systemet ditt.

  • For Bash-skall, bruk imidlertid flerlinjetegnet eller omvendt skråstrek (\).
  • For PowerShell kan du bruke backtick-tegnet (`).
  • Til slutt, hvis du er på kommandoprompt, kan du bruke et indikatortegn som ^

For eksempel, på Bash, kjør kommandoen som:

$ sudo docker build \

-den \

busybox \

sh

På PowerShell kan du kjøre kommandoen som vist:

$ sudo dockerbygg `

-den `

busybox `

sh

Og til slutt, hvis du er på ledeteksten, bruk kommandoen som vist:

$ sudo docker build ^

-den ^

busybox ^

sh

Metode 3 – ${pwd} OG $(pwd) bane

En annen vanlig årsak til denne feilen er når du bruker variabelen ${pwd}. Dette kan forårsake konflikt, avhengig av hvilken type skall du utfører kommandoen på.

Når det gjelder PowerShell, må du bruke ${pwd}-variabelen i stedet for $(pwd).

Som du kan gjette, i tilfelle av Bash, bruk parentesformatet i stedet for den krøllete inndata som $(pwd).

Konklusjon

Dette innlegget diskuterte de viktigste årsakene til det 'ugyldige referanseformatet' når du arbeider med Dockerfile eller docker-kommandoer. Vi har også utforsket tre hovedmetoder du kan bruke for å fikse dette problemet.