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.
Utilisation du service Amazon Elastic Container Registry dans VS Code
Vous pouvez accéder au service Amazon Elastic Container Registry (Amazon ECR) directement à partir duAWSExplorer dans VS Code et utilisez-le pour envoyer une image de programme vers un référentiel Amazon ECR. Pour démarrer, procédez comme suit :
-
Créez un Dockerfile contenant les informations nécessaires à la création d'une image.
-
Créez une image à partir de ce Dockerfile et balisez l'image pour traitement.
-
Créez un référentiel au sein de votre instance Amazon ECR.
-
Transmettez l'image balisée à votre référentiel.
Sections
Prérequis
Avant de pouvoir utiliser la fonctionnalité de service Amazon ECR de Toolkit for VS Code, vous devez respecter cesexigences.
1. Création d'un Dockerfile
Docker utilise un fichier appelé Dockerfile pour définir une image qui peut être poussée et stockée sur un référentiel distant. Avant de pouvoir télécharger une image dans un référentiel ECR, vous devez créer un Dockerfile, puis créer une image à partir de ce Dockerfile.
Création d'un Dockerfile
-
Utilisez l'explorateur Toolkit for VS Code pour terminer le répertoire où vous souhaitez enregistrer votre fichier Dockerfile.
-
Créez un nouveau fichier nomméDockerfile.
Note
VS Code peut vous demander de sélectionner un type de fichier ou une extension de fichier. Si cela se produit, sélectionneztexte brut. Vs Code possède une extension « dockerfile ». Cependant, nous vous déconseillons de l'utiliser. Cela est dû au fait que l'extension peut provoquer des conflits avec certaines versions de Docker ou d'autres applications associées.
Modifiez votre Dockerfile à l'aide de VS Code
Si votre fichier Dockerfile possède une extension de fichier, ouvrez le menu contextuel (clic droit) pour le fichier et supprimer l'extension de fichier.
Une fois l'extension de fichier supprimée de votre Dockerfile :
-
Ouvrez le Dockerfile vide directement dans VS Code.
-
Copiez le contenu de l'exemple suivant dans votre Dockerfile :
Exemple Modèle d'image Dockerfile
FROM ubuntu:18.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Install apache and write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure apache RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh && \ echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh && \ echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.sh
Il s'agit d'un fichier Dockerfile qui utilise une image Ubuntu 18.04. LeCOURIRinstructions de mise à jour des caches de package. Installez les packages logiciels pour le serveur web, et écrivent ensuite le contenu « Hello World ! » à la racine du document du serveur web. LeEXPOSERl'instruction expose le port 80 sur le conteneur, etCMDpermet de démarrer le serveur web.
-
Enregistrez votre Dockerfile.
Important
Assurez-vous qu'aucune extension n'est associée au nom de votre Dockerfile. Un Dockerfile avec des extensions peut provoquer des conflits avec certaines versions de Docker ou d'autres applications associées.
2. Créez votre image à partir de votre Dockerfile
Le Dockerfile que vous avez créé contient les informations nécessaires pour créer une image pour un programme. Avant de pouvoir envoyer cette image vers votre instance Amazon ECR, vous devez d'abord créer l'image.
Créez une image à partir de votre Dockerfile
-
Utilisez l'interface de ligne de commande Docker ou une interface de ligne de commande intégrée à votre instance de Docker pour accéder au répertoire qui contient votre Dockerfile.
-
Exécutez leBuild Dockerpour créer l'image définie dans votre Dockerfile.
docker build -t hello-world .
-
Exécutez leImages Dockerpour vérifier que l'image a été créée correctement.
docker images --filter reference=hello-world
Exemple de sortie :
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
-
Note
Cette étape n'est pas nécessaire pour créer ou pousser votre image, mais vous pouvez voir comment fonctionne l'image du programme lorsqu'elle est exécutée.
Pour exécuter la nouvelle image, utilisez laDockercommande.
docker run -t -i -p 80:80 hello-world
Le-pqui est spécifiée dans l'exemple précédent met en correspondance lePort 80sur le conteneurPort 80du système hôte. Si vous exécutez Docker localement, accédez àhttp://localhost:80
à l'aide de votre navigateur web. Si le programme s'exécutait correctement, un contenu « Hello World ! » est affichée. Pour plus d'informations sur laDockercommande, consultezDocumentation de référence sur Docker
sur le site web Docker.
3. Créer un nouveau référentiel
Pour télécharger votre image dans votre instance Amazon ECR, créez un nouveau référentiel dans lequel elle pourra être stockée.
Créer un nouveau référentiel Amazon ECR
-
À partir du code VSBarre d'activité, choisissez leAWSIcône Toolkit.
-
Développer la AWSExplorateurMenu.
-
Recherchez la valeur par défautAWSRégion associée à votreAWS. Ensuite, sélectionnez-la pour voir la liste des services qui se trouvent via le Toolkit for VS Code.
-
Cliquez sur l'ongletECR +option pour commencerCréer un nouveau référentielProcessus.
-
Suivez les instructions qui s'affichent afin de finaliser le processus.
-
Une fois qu'il est terminé, vous pouvez accéder à votre nouveau référentiel à partir duECRSection duAWSMenu Explorer.
4. Transmettez, Extraire et Suppression d'images
Après avoir créé une image à partir de votre Dockerfile et créé un référentiel, vous pouvez transférer votre image dans votre référentiel Amazon ECR. En outre, à l'aide deAWSExplorer avec Docker etAWSde commande de commande, vous pouvez effectuer les actions suivantes :
-
Extrait une image de votre référentiel.
-
Supprimez une image stockée dans votre référentiel.
-
Supprimez votre dépôt.
Authentifiez Docker avec votre registre par défaut
L'authentification est requise pour échanger des données entre les instances Amazon ECR et Docker. Pour authentifier Docker auprès de votre registre :
-
Ouvrez un système d'exploitation en ligne de commande connecté à votre instance deAWSDE COMMANDE.
-
Utilisation de l'get-login-passwordpour vous authentifier auprès de votre registre ECR privé.
aws ecr get-login-password --region
region
| docker login --username AWS --password-stdinAWS_account_id
.dkr.ecr.region
.amazonaws.comImportant
Dans la commande précédente, vous devez mettre à jour les
region
et l'AWS_account_id
aux informations spécifiques à votreAWS.
Balisez et transmettre une image à votre référentiel
Après avoir authentifié Docker auprès de votre instance deAWS, Transmettez une image à votre référentiel.
-
Utilisation de l'Images Dockerpour afficher les images que vous avez stockées localement et identifier celle que vous souhaitez baliser.
docker images
Exemple de sortie :
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
-
Étiquetez votre image avec leBalisDockercommande.
docker tag hello-world:latest
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world:latest -
Transmettez l'image balisée à votre référentiel avec le contenuBalisDockercommande.
docker push
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world:latestExemple de sortie :
The push refers to a repository [
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world] (len: 1) e9ae3c220b23: Pushed a6785352b25c: Pushed 0998bf8fb9e9: Pushed 0a85502c06c9: Pushed latest: digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b size: 6774
Une fois que votre image balisée a été téléchargée avec succès dans votre référentiel, elle est visible dans leAWSMenu Explorer.
Extrait une image d'Amazon ECR
-
Vous pouvez extraire une image vers votre instance locale deBalisDockercommande.
docker pull
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world:latestExemple de sortie :
The push refers to a repository [
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world] (len: 1) e9ae3c220b23: Pushed a6785352b25c: Pushed 0998bf8fb9e9: Pushed 0a85502c06c9: Pushed latest: digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b size: 6774
Supprimer une image de votre référentiel Amazon ECR
Il existe deux méthodes pour supprimer une image de VS Code. La première méthode consiste à utiliser laAWSExplorer.
-
À partir de laAWSExplorateur, développez leECRmenu
-
Développez le référentiel dans lequel vous souhaitez supprimer une image
-
Choisissez la balise d'image associée à l'image que vous souhaitez supprimer, en ouvrant le menu contextuel (clic droit)
-
Cliquez sur l'ongletSuppression de balise...option pour supprimer toutes les images stockées associées à cette balise
Suppression d'une image en utilisant laAWSCLI
-
Vous pouvez également supprimer une image de votre référentiel à l'aide de laAWSecr batch-delete-imagecommande.
AWS ecr batch-delete-image \ --repository-name
hello-world
\ --image-ids imageTag=latestExemple de sortie :
{ "failures": [], "imageIds": [ { "imageTag": "latest", "imageDigest": "sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b" } ] }
Supprimer un référentiel de votre instance Amazon ECR
Il existe deux méthodes pour supprimer un dépôt de VS Code. La première méthode consiste à utiliser laAWSExplorer.
-
À partir de laAWSExplorateur, développez leECRmenu
-
Choisissez pour terminer le contenu que vous souhaitez supprimer en ouvrant le menu contextuel (clic droit)
-
Cliquez sur l'ongletSuppression du référentiel...option pour le référentiel choisi
Suppression d'un référentiel Amazon ECR de laAWSCLI
-
Vous pouvez supprimer un dépôt à l'aide de la commandeAWSdépôt de suppression ecrcommande.
Note
Par défaut, vous ne pouvez pas supprimer un référentiel qui contient des images. Cependant, le--forceflag permet cela.
AWS ecr delete-repository \ --repository-name
hello-world
\ --forceExemple de sortie :
{ "failures": [], "imageIds": [ { "imageTag": "latest", "imageDigest": "sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b" } ] }