Docker ongeldig referentieformaat

Docker Ongeldig Referentieformaat



Wanneer u met Docker-afbeeldingen of Dockerfile werkt, kunt u de fout ‘ongeldig referentieformaat’ tegenkomen.

In deze zelfstudie leren we wat deze fout betekent, waarom deze optreedt en hoe u deze kunt oplossen in uw Docker-gebruik.

Wat is een afbeeldingsreferentie in Docker?

In Docker verwijst een afbeeldingsreferentie naar een methode voor het identificeren en lokaliseren van een specifieke Docker-afbeelding binnen het Docker-register (Docker Hub) of de lokale Docker-host.







Standaard bestaat de afbeeldingsreferentie uit twee hoofdcomponenten:



Repository – Het eerste deel definieert de repository voor de doelafbeelding. Dit is de organisatie-eenheid op het hoogste niveau voor de Docker-image, die voornamelijk wordt gebruikt om de organisatie of het individu te vertegenwoordigen dat de image beheert. U kunt bijvoorbeeld een afbeelding vinden met de naam Microsoft/SQL-server. In dit geval vertegenwoordigt het eerste deel de organisatie die het imago in stand houdt.



Tag – Het tweede deel van een afbeelding is een label dat is gekoppeld aan de specifieke versie of variant van de afbeelding in de repository. Afbeeldingstags kunnen verschillende versies van dezelfde afbeelding, verschillende releases of verschillende compatibiliteit vertegenwoordigen. Bijvoorbeeld in de afbeelding van nginx:latest waarbij de nieuwste tag verwijst naar de nieuwste versie van de Nginx-afbeelding.





Wanneer u de afbeelding opgeeft in een Dockerfile- of docker-opdracht, moet de afbeeldingsnaam aan de volgende naamgevingsregels voldoen:

  • De naam van de repository moet kleine letters zijn.
  • De repository kan ook letters, cijfers, koppeltekens (-), onderstrepingstekens (_) of slashes (/) bevatten om de organisatie of groepering binnen een register aan te geven.
  • Er mogen geen witruimtetekens (spaties of tabs) in de afbeeldingsnaam staan.

Docker Ongeldig referentieformaat

Wanneer u de foutmelding ‘ongeldig referentieformaat’ krijgt bij het uitvoeren van de Dockerfile- of Docker-opdracht, betekent dit dat uw naam niet aan de bovenstaande regels voldoet.



Een voorbeeld is zoals weergegeven:

$ docker-pull BusyBox

Als we de bovenstaande opdracht uitvoeren, retourneert deze een fout zoals weergegeven:

ongeldig referentie formaat: de naam van de repository moet kleine letters zijn

In dit geval vertelt het ons dat het formaat van de afbeeldingsnaam onjuist is, omdat de afbeeldingsnaam altijd kleine letters moet zijn.

Hoe u de Docker-fout met ongeldig referentieformaat kunt oplossen

Zoals u kunt raden, is de eerste methode ervoor te zorgen dat het afbeeldingsreferentieformaat correct is. Dit omvat het verifiëren dat de afbeeldingsnaam geldig is.

In de bovenstaande opdracht kunnen we de fout bijvoorbeeld oplossen door de afbeeldingsnaam op te geven als:

$ sudo docker pull busybox: nieuwste

In dit geval moet de opdracht de nieuwste versie van de Busybox-image ophalen.

Methode 2 – Lange Docker-opdrachten splitsen

In sommige andere gevallen kunt u de fout ‘ongeldig referentieformaat’ tegenkomen wanneer u een lange Docker-opdracht uitvoert.

In dat geval is het een goede gewoonte om de opdracht in meerdere regels op te splitsen. De methode voor het splitsen van opdrachten is afhankelijk van uw shell en systeem.

  • Gebruik voor de Bash-shell echter het escape-teken met meerdere regels of de backslash (\).
  • Voor PowerShell kunt u het backtick-teken (`) gebruiken.
  • Als u ten slotte de opdrachtprompt gebruikt, kunt u een dakje gebruiken als ^

Voer op Bash de opdracht bijvoorbeeld uit als:

$ sudo docker bouwen \

-Het \

busybox \

sch

Op PowerShell kunt u de opdracht uitvoeren zoals weergegeven:

$ sudo havenarbeider gebouwd `

-Het `

bezige doos `

sch

En ten slotte, als u zich op de opdrachtprompt bevindt, gebruikt u de opdracht zoals weergegeven:

$ sudo docker-build ^

-Het ^

busybox ^

sch

Methode 3 – ${pwd} EN $(pwd) pad

Een andere veelvoorkomende oorzaak van deze fout is het gebruik van de variabele ${pwd}. Dit kan conflicten veroorzaken, afhankelijk van het type shell waarop u de genoemde opdracht uitvoert.

In het geval van PowerShell moet u de variabele ${pwd} gebruiken in plaats van $(pwd).

Zoals u kunt raden, gebruikt u in het geval van Bash het formaat tussen haakjes in plaats van de invoer met accolades als $(pwd).

Conclusie

In dit bericht werden de belangrijkste oorzaken van het “ongeldige referentieformaat” besproken bij het werken met Dockerfile- of docker-opdrachten. We hebben ook drie belangrijke methoden onderzocht die u kunt gebruiken om dit probleem op te lossen.