
Table des matières
Docker facilite la construction, l’exécution et la gestion des conteneurs. Cependant, vous pouvez rencontrer le «Format de référence non valide«Erreur lorsque vous essayez d’exécuter ou de construire une image. Dans la plupart des cas, le problème est causé par une petite erreur de formatage dans le nom ou la balise de l’image. Par exemple, cela pourrait être dû à des lettres majuscules, des caractères spéciaux ou une valeur manquante. Dans ce guide, je vais expliquer les causes courantes de cette erreur et comment les corriger pour empêcher que cela ne se reproduise.
Que signifie l’erreur «format de référence non valide» dans Docker?
Cette erreur se produit lorsque Docker ne peut pas interpréter le format du nom de votre image. Si le nom est mal structuré, Docker ne traite pas la demande et lance l’erreur «format de référence non valide».
Docker nécessite des noms d’image pour suivre une structure spécifique pour fonctionner correctement. La syntaxe générale est:
(registry/)(repository)(:tag)
Pour vous assurer que le nom de votre image est valide, suivez ces règles:
- Utilisez uniquement des lettres minuscules. Docker n’autorise pas les lettres majuscules dans les noms d’images.
- Vous pouvez inclure des nombres, des traits de gamme (-), des points (.) Et des soulignements (_) pour séparer les mots ou les versions, tels que My-App_V1.0.
- Éviter Spécial des personnages comme @, #,!, ou $, comme Docker ne les acceptera pas.
- Les noms d’images Docker doivent également suivre les règles de dénomination DNS, ce qui signifie que chaque section du nom (séparée par des barres obliques ou des points) doit être entre 1 et 63 caractères, et les tirets ne peuvent pas être placés au début ou à la fin d’une section.
- Le nom d’image complet, y compris toutes les informations de registre et de balise, ne doit pas être plus de 255 caractères au total.
Fixation de l’erreur du «format de référence non valide»
Explorons les raisons les plus courantes de l’erreur «format de référence non valide» et comment les réparer:
Lettres majuscules dans le nom de l’image
Docker s’attend à ce que les noms d’images soient dans toutes les lettres minuscules. Même une seule majuscule peut provoquer la rupture du format. Par exemple, l’exécution de la commande suivante entraînera une erreur:
docker pull NGINX
Pour éviter cette erreur, vérifiez toujours que le nom de votre image est en minuscules avant d’exécuter la commande.
docker pull nginx

Personnages spéciaux ou non valides
Parfois, les utilisateurs incluent accidentellement des caractères que Docker ne permet pas. Ces symboles incluent le signe, les espaces ou les caractères copiés à partir d’un site Web ou d’un document qui semblent normaux mais qui ne le sont pas.
Par exemple, la commande suivante contient un caractère spécial @, qui provoquera l’erreur indiquée:
docker run ubuntu@:latest

Pour résoudre cette erreur, assurez-vous qu’il n’y a pas de caractères supplémentaires ou de problèmes de formatage dans la commande. Vous pouvez utiliser un éditeur de texte brut pour vérifier et nettoyer la commande (si nécessaire):
docker run ubuntu:latest

Un côlon sans étiquette
L’une des erreurs les plus courantes consiste à placer un côlon à la fin du nom de l’image mais à ne pas inclure une balise. Par exemple, nous essayons la commande suivante pour tirer le nœud:
docker pull node:
Docker attend quelque chose après le côlon, comme le dernier, le 18-alpine ou toute autre étiquette valide. Si rien n’est fourni, le nom de l’image est considéré comme incomplet et provoquera l’erreur «format de référence non valide»:

Pour résoudre ce problème, ajoutez une balise appropriée après le côlon pour rendre le nom de l’image complet et valide:
docker pull node:latest

Chemins de fichiers ou supports de volume avec des espaces
Lorsque vous incluez un chemin de fichier qui contient des espaces, en particulier avec des options comme -v
(Volume Mount), Docker peut mal interpréter les parties du chemin comme des arguments distincts ou même une partie du nom de l’image. En conséquence, vous pouvez rencontrer des résultats inattendus comme indiqué ci-dessous:
docker run -v /home/user/My Folder:/app ubuntu

Pour éviter cela, mettez toujours des chemins de fichier avec des espaces à l’intérieur des citations doubles, comme indiqué ci-dessous:
docker run -v "/home/user/My Folder:/app" ubuntu
Remplacez «/ home / user / mon dossier» par le chemin réel vers le dossier que vous souhaitez monter dans le conteneur.
Utilisation inappropriée de la variable
Lorsque vous travaillez avec Docker, il est courant d’utiliser des variables dans les commandes, en particulier lors de la spécification des versions d’image. Cependant, si une variable comme $VERSION
n’est pas réglé correctement, Docker peut rencontrer des problèmes comme l’erreur de «format de référence non valide».
Par exemple, nous exécutons la commande suivante pour tirer Ubuntu du Docker Hub:
docker pull ubuntu:$VERSION
Ici, le $VERSION
est censé représenter la version de l’image Ubuntu que vous souhaitez extraire. Mais si vous n’y avez pas attribué de valeur, Docker interprète la commande comme «Docker Pull Ubuntu:». Il en résulte un nom d’image non valide car il se termine par un côlon et n’a pas la balise de version requise.

Pour éviter cela, assurez-vous que toutes les variables utilisées dans la commande sont correctement définies. Dans Linux, vous pouvez définir une variable en utilisant la syntaxe suivante.
$VERSION=latest
Ensuite, tirez la version spécifiée en exécutant la commande suivante.
docker pull ubuntu:$VERSION
Dans Windows CMD, vous devez utiliser le set
mot-clé pour définir une variable (comme la version), puis utiliser %VARIABLE%
Syntaxe pour le référencer dans des commandes comme Docker Pull.
set VERSION=latest
docker pull ubuntu:%VERSION%
Ici, $VERSION
maintient la valeur la plus récente, donc Docker tire le Ubuntu: dernier image sans aucun problème. Vous pouvez également attribuer une version spécifique, comme 18.04, si nécessaire.

Copier et coller les problèmes
Parfois, les utilisateurs copient des commandes à partir de tutoriels ou de documents en ligne. Ces commandes copiées peuvent contenir des caractères cachés tels que des espaces invisibles, des ponctuations non anglophones ou des marques de devis spéciales. Ces personnages peuvent briser silencieusement votre commande docker.
Pour éviter cela, il est toujours préférable de taper la commande vous-même lorsque cela est possible ou de le coller dans un éditeur de texte brut pour supprimer la mise en forme indésirable.
Emballage
Maintenant que vous connaissez les causes communes de l’erreur de «format de référence non valide» dans Docker et de leurs correctifs respectifs, vous êtes en bonne position pour éviter ce problème à l’avenir. De la vérification des majuscules pour vous assurer que vos variables sont correctement définies, ces conseils simples peuvent vous faire économiser beaucoup de temps et de frustration. Si vous êtes prêt à explorer davantage, vous pouvez également apprendre à taguer et à pousser vos propres images Docker personnalisées vers un registre ou à nettoyer les images inutilisées pour garder votre système organisé.