AWS Cloud9 n'est plus disponible pour les nouveaux clients. Les clients existants de AWS Cloud9 peuvent continuer à utiliser le service normalement. En savoir plus
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.
Travailler avec le ECR service Amazon dans AWS Cloud9
Vous pouvez accéder au service Amazon Elastic Container Registry (AmazonECR) directement depuis l' AWS explorateur AWS Cloud9 IDE. Vous pouvez utiliser Amazon ECR pour transférer une image de programme vers un ECR référentiel Amazon. Pour commencer, 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 le traitement.
-
Créez un référentiel intégré à votre ECR instance Amazon.
-
Transmettez l'image balisée à votre référentiel.
Sections
Prérequis
Avant de pouvoir utiliser la ECR fonctionnalité Amazon du AWS Toolkit pour AWS Cloud9, assurez-vous que vous répondez d'abord à ces conditions préalables. Ces prérequis sont préinstallés dans les EC2 environnements pour AWS Cloud9 IDE AWS Cloud9 Amazon et sont nécessaires pour accéder à Amazon. ECR
1. Création d'un fichier Dockerfile
Docker utilise un fichier appelé Dockerfile pour définir une image qui peut être transférée et stockée sur un référentiel distant. Avant de télécharger une image dans un ECR référentiel, créez un Dockerfile, puis créez une image à partir de ce Dockerfile.
Création d'un fichier Dockerfile
-
Pour accéder au répertoire dans lequel vous souhaitez stocker votre Dockerfile, choisissez l'option Toggle Tree dans la barre de navigation gauche de votre. AWS Cloud9 IDE
-
Créez un fichier nommé Dockerfile.
Note
AWS Cloud9 IDEpeut vous demander de sélectionner un type de fichier ou une extension de fichier. Dans ce cas, sélectionnez du texte brut. AWS Cloud9 IDEpossè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.
Modifier votre Dockerfile à l'aide de AWS Cloud9 IDE
Si votre fichier Dockerfile possède une extension de fichier, ouvrez le menu contextuel (clic droit) du fichier et supprimez l'extension de fichier. Un Dockerfile avec des extensions peut provoquer des conflits avec certaines versions de Docker ou d'autres applications associées.
Une fois l'extension de fichier supprimée de votre Dockerfile :
-
Ouvrez le Dockerfile vide directement dedans. AWS Cloud9 IDE
-
Copiez le contenu de l'exemple suivant dans votre Dockerfile.
Exemple Modèle d'image de fichier Dockerfile
FROM ubuntu:22.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 Dockerfile qui utilise une image Ubuntu 22.04. Les RUNinstructions mettent à jour les caches des packages. Installez les packages logiciels pour le serveur web et écrivent ensuite le contenu « Hello World ! » à la racine du document du serveur web. L'EXPOSEinstruction expose le port 80 sur le conteneur, et l'CMDinstruction démarre le serveur Web.
-
Enregistrez votre fichier Dockerfile.
2. Création de 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 transférer cette image vers votre ECR instance Amazon, créez d'abord l'image.
Création d'une image à partir de votre Dockerfile
-
Pour accéder au répertoire qui contient votre Dockerfile, utilisez le Docker CLI ou un CLI fichier intégré à votre instance de Docker.
-
Pour créer l'image définie dans votre Dockerfile, exécutez la commande Docker build depuis le même répertoire que le Dockerfile.
docker build -t hello-world .
-
Exécutez la commande Docker images pour vérifier que l'image a été créée correctement.
docker images --filter reference=hello-world
La sortie est la suivante.
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
-
Pour exécuter la nouvelle image basée sur Ubuntu 22.04, utilisez la commande echo.
Note
Cette étape n'est pas nécessaire pour créer ou diffuser votre image. Cependant, vous pouvez voir comment fonctionne l'image du programme lorsqu'elle est exécutée.
FROM ubuntu:22.04 CMD ["echo", "Hello from Docker in Cloud9"]
Ensuite, exécutez et générez le fichier Dockerfile. Vous devez exécuter cette commande à partir du même répertoire que le fichier fichier fichier fichier.
docker build -t hello-world . docker run --rm hello-world
La sortie est la suivante.
Hello from Docker in Cloud9
Pour de plus amples informations sur la commande Docker run, consultez la Référence Docker Run
dans le manuel de référence Docker.
3. Création d'un nouveau référentiel
Pour télécharger votre image dans votre ECR instance Amazon, créez un nouveau référentiel dans lequel elle pourra être stockée.
Création d'un nouveau ECR référentiel Amazon
-
Dans la barre AWS Cloud9 IDE de navigation, choisissez l'icône du AWS kit d'outils.
-
Développez le menu AWS Explorer.
-
Localisez la valeur par défaut Région AWS associée à votre Compte AWS. Ensuite, sélectionnez-le pour voir la liste des services proposés par le biais du AWS Cloud9 IDE.
-
Ouvrez le menu contextuel (clic droit) pour sélectionner l'ECRoption permettant de démarrer le processus de création d'un nouveau référentiel. Sélectionnez ensuite Créate Repository (Créer un référentiel).
-
Pour terminer le processus, suivez les instructions.
-
Une fois le processus terminé, vous pouvez accéder à votre nouveau dépôt depuis la ECRsection du menu AWS Explorateur.
4. Pousser, extraire et supprimer des 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 AmazonECR. En outre, en utilisant l' AWS explorateur avec Docker et le AWS CLI, vous pouvez effectuer les opérations suivantes :
-
Extraire une image d'un référentiel.
-
Supprimer une image stockée dans votre référentiel.
-
Supprimer votre référentiel.
Authentification de 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 avec votre registre :
-
Ouvrez un terminal dans votre AWS Cloud9 IDE.
-
Utilisez get-login-passwordcette méthode pour vous authentifier auprès de votre ECR registre privé et entrez votre région et votre Compte AWS identifiant.
aws ecr get-login-password \ --region <
region
> \ | docker login \ --username AWS \ --password-stdin <aws_account_id
>.dkr.ecr.<region>.amazonaws.com.rproxy.goskope.comImportant
Dans la commande précédente, remplacez
region
etAWS_account_id
par les informations spécifiques à votre Compte AWS. Une valeur valideregion
est us-east-1.
Balisage et envoi d'une image vers un référentiel
Après avoir authentifié Docker avec votre instance de AWS, envoyez une image dans votre référentiel.
-
Utilisez la commande docker images pour afficher les images que vous avez stockées localement et identifier celle que vous souhaitez étiqueter.
docker images
La sortie est la suivante.
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
-
Créez votre image Docker à l’aide de la commande Docker tag.
docker tag hello-world:latest
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world:latest -
Transférez l'image balisée vers votre référentiel à l'aide de la commande Docker push.
Important
Assurez-vous que le nom de votre dépôt local est le même que celui de votre EC2 dépôt AWS Amazon. Dans cet exemple, les deux référentiels doivent être nommés
hello-world
. Pour plus d'informations sur la transmission d'images avec docker, voir Transmission d'une image Docker.docker push
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world:latestLa sortie est la suivante.
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é correctement téléchargée dans votre dépôt, actualisez le AWS kit d'outils en choisissant Actualiser l'explorateur dans l'onglet AWS Explorateur. Il est alors visible dans le menu de l' AWS Explorateur de AWS Cloud9 IDE.
Extraire une image depuis Amazon ECR
-
Vous pouvez extraire une image vers votre instance locale de la commande Docker tag.
docker pull
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world:latestLa sortie est la suivante.
azonaws.com/hello-world:latest latest: Pulling from hello-world Digest: sha256:e02c521fd65eae4ef1acb746883df48de85d55fc85a4172a09a124b11b339f5e Status: Image is up to date for 922327013870.dkr.ecr.us-west-2.amazonaws.com/hello-world.latest
Supprimer une image de votre ECR référentiel Amazon
Il existe deux méthodes pour supprimer une image de AWS Cloud9 IDE. La première méthode consiste à utiliser l' AWS explorateur.
-
Dans l' AWS explorateur, développez le ECRmenu.
-
Développez le référentiel dont vous souhaitez supprimer une image.
-
Ouvrez le menu contextuel (clic droit) de la balise image associée à l'image que vous souhaitez supprimer.
-
Pour supprimer toutes les images stockées associées à cette balise, choisissez Delete tag… (Supprimer la balise).
Suppression d'une image à l'aide du AWS CLI
-
Vous pouvez également supprimer une image de votre dépôt à l'aide de la batch-delete-image commande AWS ecr.
aws ecr batch-delete-image \ --repository-name
hello-world
\ --image-ids imageTag=latestLa sortie est la suivante.
{ "failures": [], "imageIds": [ { "imageTag": "latest", "imageDigest": "sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b" } ] }
Supprimer un référentiel de votre ECR instance Amazon
Il existe deux méthodes pour supprimer un dépôt de AWS Cloud9 IDE. La première méthode consiste à utiliser l' AWS explorateur :
-
Dans l' AWS explorateur, développez le ECRmenu.
-
Ouvrez le menu contextuel (clic droit) pour le référentiel que vous souhaitez supprimer.
-
Choisissez Delete Repository… (Supprimer le référentiel).
Suppression d'un ECR référentiel Amazon du AWS CLI
-
Vous pouvez supprimer un dépôt à l'aide de la commande AWS ecr delete-repository.
Note
Normalement, vous ne pouvez pas supprimer un référentiel sans supprimer au préalable les images qu'il contient. Toutefois, si vous ajoutez l'indicateur --force, vous pouvez supprimer un dépôt et toutes ses images en une seule étape.
aws ecr delete-repository \ --repository-name
hello-world
\ --forceLa sortie est la suivante.
--repository-name hello-world --force { "repository": { "repositoryUri": "922327013870.dkr.ecr.us-west-2.amazonaws.com/hello-world", "registryId": "922327013870", "imageTagMutability": "MUTABLE", "repositoryArn": "arn:aws:ecr:us-west-2:922327013870:repository/hello-world", "repositoryName": "hello-world", "createdAt": 1664469874.0 } }