Formato di riferimento Docker non valido

Formato Di Riferimento Docker Non Valido



Quando lavori con immagini Docker o Dockerfile, potresti riscontrare l'errore 'formato di riferimento non valido'.

In questo tutorial impareremo cosa significa questo errore, perché si verifica e come risolverlo nell'utilizzo di Docker.

Cos'è un riferimento immagine in Docker?

In Docker, un riferimento a un'immagine si riferisce a un metodo per identificare e individuare un'immagine Docker specifica all'interno del registro Docker (Docker Hub) o dell'host Docker locale.







Per impostazione predefinita, il riferimento all'immagine è composto da due componenti principali:



Repository: la prima parte definisce il repository per l'immagine di destinazione. Questa è l'unità organizzativa di primo livello per l'immagine Docker, utilizzata principalmente per rappresentare l'organizzazione o l'individuo che gestisce l'immagine. Ad esempio, puoi trovare un'immagine denominata Microsoft/SQL-server. In questo caso la prima parte rappresenta l'organizzazione che mantiene l'immagine.



Tag: la seconda parte di un'immagine è un'etichetta associata alla versione o variante specifica dell'immagine all'interno del repository. I tag immagine possono rappresentare versioni diverse della stessa immagine, versioni diverse o compatibilità diversa. Ad esempio, nell'immagine nginx:latest dove il tag latest si riferisce all'ultima versione dell'immagine Nginx.





Quando si specifica l'immagine in un comando Dockerfile o docker, il nome dell'immagine deve seguire le seguenti regole di denominazione:

  • Il nome del repository dovrebbe essere minuscolo.
  • Il repository può contenere anche lettere, numeri, trattini (-), trattini bassi (_) o barre (/) per indicare un'organizzazione o un raggruppamento all'interno di un registro.
  • Nel nome dell'immagine non devono essere presenti caratteri di spazio bianco (spazi o tabulazioni).

Formato di riferimento Docker non valido

Quando ricevi l'errore 'formato di riferimento non valido' durante l'esecuzione del comando Dockerfile o Docker, significa che il tuo nome non ha rispettato le regole di cui sopra.



Un esempio è quello mostrato:

$ la finestra mobile estrae BusyBox

Se eseguiamo il comando precedente, restituirà un errore come mostrato:

non valido riferimento formato: il nome del repository deve essere minuscolo

In questo caso ci dice che il formato del nome dell'immagine non è corretto, poiché il nome dell'immagine dovrebbe essere sempre minuscolo.

Come correggere l'errore del formato di riferimento non valido di Docker

Come puoi immaginare, il primo metodo è garantire che il formato di riferimento dell'immagine sia corretto. Ciò include la verifica che il nome dell'immagine sia valido.

Ad esempio, nel comando precedente, possiamo correggere l'errore specificando il nome dell'immagine come:

$ sudo docker pull busybox: più recente

In questo caso, il comando dovrebbe estrarre la versione più recente dell'immagine Busybox.

Metodo 2 – Dividi i comandi Docker lunghi

In alcuni altri casi, potresti riscontrare l'errore 'formato di riferimento non valido' durante l'esecuzione di un comando Docker lungo.

In tal caso, è buona norma dividere il comando su più righe. Il metodo di suddivisione dei comandi dipenderà dalla shell e dal sistema.

  • Tuttavia, per la shell Bash, utilizzare il carattere di escape multilinea o la barra rovesciata (\).
  • Per PowerShell è possibile utilizzare il carattere apice inverso (`).
  • Infine, se sei al prompt dei comandi, puoi usare un carattere accento circonflesso come ^

Ad esempio, su Bash, esegui il comando come:

$ sudo creazione della finestra mobile \

-Esso \

casella occupata \

sh

Su PowerShell, puoi eseguire il comando come mostrato:

$ sudo compilazione della finestra mobile `

-Esso `

busybox `

sh

E infine, se ti trovi nel prompt dei comandi, usa il comando come mostrato:

$ sudo creazione della finestra mobile ^

-Esso ^

casella occupata ^

sh

Metodo 3 – Percorso ${pwd} AND $(pwd).

Un'altra causa comune di questo errore è quando si utilizza la variabile ${pwd}. Ciò può causare conflitti, a seconda del tipo di shell su cui stai eseguendo il suddetto comando.

Nel caso di PowerShell, è necessario utilizzare la variabile ${pwd} anziché $(pwd).

Come puoi immaginare, nel caso di Bash, usa il formato parentesi invece dell'input tra parentesi graffe come $(pwd).

Conclusione

Questo post ha discusso le principali cause del 'formato di riferimento non valido' quando si lavora con Dockerfile o comandi docker. Abbiamo anche esplorato tre metodi principali che puoi utilizzare per risolvere questo problema.