Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Résolution des commandes Docker et des problèmes liés à l'utilisation d'Amazon ECR
Dans certains cas, l'exécution d'une commande Docker sur Amazon ECR peut générer un message d'erreur. Vous trouverez ci-après la présentation de certains messages d'erreur courants et des résolutions potentielles.
Rubriques
- Les journaux Docker ne contiennent pas les messages d'erreur attendus
- Erreur : « Filesystem Verification Failed » ou « 404: Image Not Found » lors de l'extraction d'une image d'un référentiel Amazon ECR
- Erreur : « Filesystem Layer Verification Failed » lors de l'extraction d'images d'Amazon ECR
- Erreurs HTTP 403 ou « no basic auth credentials » lors de la transmission au référentiel
Les journaux Docker ne contiennent pas les messages d'erreur attendus
Pour commencer à déboguer tout problème lié à Docker, commencez par activer la sortie de débogage Docker sur le démon Docker exécuté sur vos instances hôtes. Si vous utilisez des images extraites d'Amazon ECR sur des instances de conteneur Amazon ECS, consultez la section Configuration de la sortie détaillée du démon Docker dans le manuel Amazon Elastic Container Service Developer Guide.
Erreur : « Filesystem Verification Failed » ou « 404: Image Not Found » lors de l'extraction d'une image d'un référentiel Amazon ECR
Il est possible que vous receviez l'erreur Filesystem verification failed
lorsque vous utilisez la commande docker pull afin d'extraire une image d'un référentiel Amazon ECR avec Docker 1.9 ou une version ultérieure. Il est possible que vous receviez l'erreur 404: Image not
found
lorsque vous utilisez des versions Docker antérieures à 1.9.
Quelques motifs possibles et leurs explications figurent ci-dessous :
- Le disque local est plein
-
Si le disque local sur lequel vous exécutez docker pull est plein, le hachage SHA-1 qui est calculé sur le fichier local peut être différent de celui calculé par Amazon ECR. Vérifiez que le disque local dispose d'un espace libre suffisant pour stocker l'image Docker transmise. Vous pouvez également supprimer d'anciennes images afin de libérer de l'espace pour les nouvelles. Utilisez la commande docker images pour afficher une liste de toutes les images Docker téléchargées localement, ainsi que de leurs tailles.
- Le client ne peut pas se connecter au référentiel distant en raison d'une erreur de réseau
-
Les appels à un référentiel Amazon ECR requièrent une connexion à Internet fonctionnelle. Vérifiez vos paramètres réseau et assurez-vous que les autres outils et applications peuvent accéder aux ressources sur Internet. Si vous exécutez docker pull sur une instance Amazon EC2 dans un sous-réseau privé, vérifiez que le sous-réseau offre un acheminement vers Internet. Utilisez un serveur de traduction d'adresses réseau (NAT) ou une passerelle NAT gérée.
Pour l'instant, les appels d'un référentiel Amazon ECR ont également besoin d'un accès réseau via le pare-feu de votre entreprise à Amazon Simple Storage Service (Amazon S3). Si votre organisation utilise un logiciel de pare-feu ou un appareil NAT qui autorise les points de terminaison de service, vérifiez que les points de terminaison de service Amazon S3 de votre région actuelle sont autorisés.
Si vous utilisez Docker derrière un proxy HTTP, vous pouvez configurer Docker avec les paramètres de proxy appropriés. Pour en savoir plus, consultez Proxy HTTP
dans la documentation Docker.
Erreur : « Filesystem Layer Verification Failed » lors de l'extraction d'images d'Amazon ECR
Il est possible que vous receviez l'erreur image image-name not found
lors de l'extraction d'images à l'aide de la commande docker pull. Si vous inspectez les journaux de Docker, vous verrez peut-être une erreur similaire à ce qui suit :
filesystem layer verification failed for digest sha256:2b96f...
Cette erreur indique qu'une ou plusieurs couches de votre image n'ont pas pu être téléchargées. Quelques motifs possibles et leurs explications figurent ci-dessous :
- Vous utilisez une version plus ancienne de Docker
-
Cette erreur peut se produire dans un petit pourcentage des cas lors de l'utilisation d'une version de Docker antérieure à 1.10. Dans ce cas, mettez à niveau le client Docker vers la version 1.10 ou une version ultérieure.
- Votre client a rencontré une erreur de réseau ou de disque
-
Un disque plein ou un problème de réseau peuvent empêcher le téléchargement d'une ou de plusieurs couches, comme nous l'avons vu pour le message
Filesystem verification failed
. Suivez les recommandations ci-dessus pour veiller à ce que votre système de fichiers ne soit pas plein et à autoriser l'accès à Amazon S3 depuis votre réseau.
Erreurs HTTP 403 ou « no basic auth credentials » lors de la transmission au référentiel
Vous êtes susceptible de recevoir une erreur HTTP 403 (Forbidden)
ou le message d'erreur no basic auth credentials
des commandes docker
push ou docker pull, même si vous vous êtes authentifié correctement auprès de Docker à l'aide de la commande aws ecr
get-login-password. Voici quelques causes connues de ce problème :
- Vous vous êtes authentifié auprès d'une région différente
-
Les demandes d'authentification sont liées à des régions spécifiques et ne peuvent pas être utilisées d'une région à l'autre. Par exemple, si vous obtenez un jeton d'autorisation de la région USA Ouest (Oregon), vous ne pourrez pas l'utiliser pour vous authentifier auprès des référentiels de la région USA Est (Virginie du Nord). Pour résoudre le problème, vérifiez que vous avez récupéré un jeton d'authentification à partir de la région dans laquelle votre référentiel se trouve. Pour plus d’informations, consultez Authentification du registre privé dans Amazon ECR.
- Vous vous êtes authentifié pour effectuer une transmission vers un référentiel pour lequel vous n'avez pas d'autorisations
-
Vous n'avez pas les autorisations nécessaires pour effectuer une transmission vers le référentiel. Pour plus d’informations, consultez Politiques relatives aux référentiels privés dans Amazon ECR.
- Votre jeton a expiré
-
La période d'expiration du jeton d'autorisation par défaut pour les jetons obtenus à l'aide de l'opération
GetAuthorizationToken
est de 12 heures. - Bogue dans le gestionnaire des informations d'identification
wincred
-
Certaines versions de Docker pour Windows utilisent un gestionnaire des informations d'identification nommé
wincred
, qui ne gère pas correctement la commande de connexion de Docker produite par aws ecr get-login-password (pour plus d'informations, consultez https://github.com/docker/docker/issues/22910). Vous pouvez exécuter la commande de connexion de Docker qui est générée, mais lorsque vous tentez de transmettre ou d'extraire des images, ces commandes échouent. Vous pouvez contourner ce bogue en supprimant le schéma https://
de l'argument de registre dans la commande de connexion de Docker sortie d'aws ecr get-login-password. Voici un exemple de commande de connexion Docker sans le schéma HTTPS.docker login -u AWS -p
<password>
<aws_account_id>
.dkr.ecr.<region>
.amazonaws.com