Utilisation du service Amazon Elastic Container Registry dans AWS Cloud9 - AWS Cloud9

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 AWS Cloud9

Vous pouvez accéder au service Amazon Elastic Container Registry (Amazon ECR) directement depuis l'explorateur AWS dans l'IDE. AWS Cloud9 Vous pouvez utiliser Amazon ECR pour transmettre une image de programme à un référentiel Amazon ECR. Pour commencer, procédez comme suit :

  1. Créez un Dockerfile contenant les informations nécessaires à la création d'une image.

  2. Créez une image à partir de ce Dockerfile et balisez l'image pour le traitement.

  3. Créez un référentiel qui se trouve à l'intérieur de votre instance Amazon ECR.

  4. Transmettez l'image balisée à votre référentiel.

Prérequis

Avant de pouvoir utiliser la fonctionnalité Amazon ECR du AWS Toolkit pour AWS Cloud9, assurez-vous que vous remplissez d'abord ces conditions préalables. Ces prérequis sont préinstallés dans l' AWS Cloud9 IDE pour les environnements Amazon AWS Cloud9 EC2 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 pouvoir télécharger une image vers un référentiel ECR, créez un Dockerfile, puis créez une image à partir de ce Dockerfile.

Création d'un fichier Dockerfile
  1. Pour accéder au répertoire dans lequel vous souhaitez stocker votre Dockerfile, choisissez l'option Toggle Tree (Basculer l'arborescence) dans la barre de navigation de gauche de votre IDE AWS Cloud9 .

  2. Créez un fichier nommé Dockerfile.

    Note

    AWS Cloud9 L'IDE peut vous demander de sélectionner un type de fichier ou une extension de fichier. Dans ce cas, sélectionnez du texte brut. AWS Cloud9 L'IDE 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.

Modification de votre Dockerfile à l'aide de l'IDE AWS Cloud9

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 :

  1. Ouvrez le Dockerfile vide directement dans AWS Cloud9 l'IDE.

  2. 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 instructions RUN 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'instruction EXPOSE expose le port 80 sur le conteneur et l'instruction CMD démarre le serveur web.

  3. 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 instance Amazon ECR, commencez par créer l'image.

Création d'une image à partir de votre Dockerfile
  1. Pour accéder au répertoire qui contient votre Dockerfile, utilisez l'interface de ligne de commande Docker ou une interface de ligne de commande intégrée à votre instance de Docker.

  2. 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 .
  3. 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
  4. 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 charger votre image dans votre instance Amazon ECR, créez un nouveau référentiel dans lequel elle peut être stockée.

Création d'un référentiel Amazon ECR
  1. Dans la barre de navigation de l' AWS Cloud9 IDE, choisissez l'icône du AWS Toolkit.

  2. Développez le menu AWS Explorer.

  3. Localisez la valeur par défaut Région AWS associée à votre Compte AWS. Ensuite, sélectionnez-le pour voir la liste des services qui passent par l' AWS Cloud9 IDE.

  4. Ouvrez le menu contextuel (clic droit) de l'option ECR afin de lancer le processus de création d'un référentiel. Sélectionnez ensuite Créate Repository (Créer un référentiel).

  5. Pour terminer le processus, suivez les instructions.

  6. Une fois le processus terminé, vous pouvez accéder à votre nouveau référentiel depuis la section ECR du menu AWS Explorer.

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 Amazon ECR. En outre, à l'aide de l' AWS explorateur avec Docker et de la 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 :

  1. Ouvrez un terminal dans votre AWS Cloud9 IDE.

  2. Utilisez get-login-passwordcette méthode pour vous authentifier auprès de votre registre ECR privé et entrez votre région et Compte AWS votre identifiant.

    aws ecr get-login-password \ --region <region> \ | docker login \ --username AWS \ --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com
    Important

    Dans la commande précédente, remplacez region et AWS_account_id par les informations spécifiques à votre Compte AWS. Une valeur valide region 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.

  1. 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
  2. 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
  3. 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 référentiel local est le même que celui de votre référentiel AWS Amazon EC2. 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:latest

    La 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 ensuite visible dans le menu AWS Explorer de l' AWS Cloud9 IDE.

Extraire une image d'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:latest

    La 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 référentiel Amazon ECR

Il existe deux méthodes pour supprimer une image de l' AWS Cloud9 IDE. La première méthode consiste à utiliser l' AWS explorateur.

  1. Dans l' AWS explorateur, développez le menu ECR.

  2. Développez le référentiel dont vous souhaitez supprimer une image.

  3. Ouvrez le menu contextuel (clic droit) de la balise image associée à l'image que vous souhaitez supprimer.

  4. Pour supprimer toutes les images stockées associées à cette balise, choisissez Delete tag… (Supprimer la balise).

Supprimer une image à l'aide de la 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=latest

    La sortie est la suivante.

    { "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 l' AWS Cloud9 IDE. La première méthode consiste à utiliser l' AWS explorateur :

  1. Dans l' AWS explorateur, développez le menu ECR.

  2. Ouvrez le menu contextuel (clic droit) pour le référentiel que vous souhaitez supprimer.

  3. Choisissez Delete Repository… (Supprimer le référentiel).

Suppression d'un référentiel Amazon ECR de la CLI AWS
  • 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 \ --force

    La 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 } }