Dans ce didacticiel, nous apprendrons ce que signifie cette erreur, pourquoi elle se produit et comment vous pouvez la résoudre lors de votre utilisation de Docker.
Qu’est-ce qu’une référence d’image dans Docker ?
Dans Docker, une référence d'image fait référence à une méthode d'identification et de localisation d'une image Docker spécifique dans le registre Docker (Docker Hub) ou l'hôte Docker local.
Par défaut, la référence d'image est composée de deux composants principaux :
Référentiel – La première partie définit le référentiel de l'image cible. Il s'agit de l'unité organisationnelle de niveau supérieur pour l'image Docker, principalement utilisée pour représenter l'organisation ou la personne qui gère l'image. Par exemple, vous pouvez trouver une image nommée Microsoft/SQL-server. Dans ce cas, la première partie représente l’organisation qui entretient l’image.
Balise – La deuxième partie d'une image est une étiquette associée à la version ou variante spécifique de l'image dans le référentiel. Les balises d'image peuvent représenter différentes versions de la même image, différentes versions ou différentes compatibilités. Par exemple, dans l'image de nginx:latest où la dernière balise fait référence à la dernière version de l'image Nginx.
Lorsque vous spécifiez l'image dans une commande Dockerfile ou docker, le nom de l'image doit suivre les règles de dénomination suivantes :
- Le nom du référentiel doit être en minuscules.
- Le référentiel peut également contenir des lettres, des chiffres, des traits d'union (-), des traits de soulignement (_) ou des barres obliques (/) pour indiquer une organisation ou un regroupement au sein d'un registre.
- Aucun caractère d'espacement (espaces ou tabulations) ne doit figurer dans le nom de l'image.
Format de référence Docker invalide
Lorsque vous obtenez l'erreur « format de référence invalide » lors de l'exécution de la commande Dockerfile ou Docker, cela signifie que votre nom n'a pas respecté les règles ci-dessus.
Un exemple est le suivant :
$ docker extraire BusyBoxSi nous exécutons la commande ci-dessus, elle renverra une erreur comme indiqué :
invalide référence format : le nom du référentiel doit être en minuscule
Dans ce cas, cela nous indique que le format du nom de l'image est incorrect, car le nom de l'image doit toujours être en minuscules.
Comment corriger l'erreur de format de référence non valide Docker
Comme vous pouvez le deviner, la première méthode consiste à garantir que le format de référence de l’image est correct. Cela inclut la vérification que le nom de l'image est valide.
Par exemple, dans la commande ci-dessus, nous pouvons corriger l'erreur en spécifiant le nom de l'image comme suit :
$ sudo Docker Pull Busybox : dernier
Dans ce cas, la commande doit extraire la dernière version de l’image Busybox.
Méthode 2 – Diviser les commandes Docker longues
Dans d'autres cas, vous pouvez rencontrer l'erreur « format de référence non valide » lors de l'exécution d'une longue commande Docker.
Dans un tel cas, diviser la commande en plusieurs lignes est une bonne pratique. La méthode de fractionnement des commandes dépendra de votre shell et de votre système.
- Cependant, pour le shell Bash, utilisez le caractère d'échappement multiligne ou la barre oblique inverse (\).
- Pour PowerShell, vous pouvez utiliser le caractère backtick (`).
- Enfin, si vous êtes sur l'invite de commande, vous pouvez utiliser un caractère caret comme ^
Par exemple, sur Bash, exécutez la commande comme :
$ sudo construction de docker \-il \
boîte occupée \
merde
Sur PowerShell, vous pouvez exécuter la commande comme indiqué :
$ sudo construction de docker `-il `
boîte occupée `
merde
Et enfin, si vous êtes sur l'invite de commande, utilisez la commande comme indiqué :
$ sudo construction de docker ^-il ^
boîte occupée ^
merde
Méthode 3 – Chemin ${pwd} ET $(pwd)
Une autre cause courante de cette erreur est l'utilisation de la variable ${pwd}. Cela peut provoquer des conflits, selon le type de shell sur lequel vous exécutez ladite commande.
Dans le cas de PowerShell, vous devez utiliser la variable ${pwd} au lieu de $(pwd).
Comme vous pouvez le deviner, dans le cas de Bash, utilisez le format parenthèse au lieu de l'entrée entre accolades comme $(pwd).
Conclusion
Cet article traite des principales causes du « format de référence invalide » lors de l'utilisation des commandes Dockerfile ou Docker. Nous avons également exploré trois méthodes principales que vous pouvez utiliser pour résoudre ce problème.