

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.

# Créez et testez des images Docker pour les services de conteneurs Lightsail
<a name="amazon-lightsail-creating-container-images"></a>

Docker vous permet de créer, d'exécuter, de tester et de déployer des applications distribuées basées sur des conteneurs. Les services de conteneurs Amazon Lightsail utilisent des images de conteneur Docker dans les déploiements pour lancer des conteneurs.

Dans ce guide, nous vous expliquons comment créer une image de conteneur sur votre machine locale à l'aide d'un fichier Dockerfile. Une fois votre image créée, vous pouvez ensuite la pousser vers votre service de conteneurs Lightsail pour la déployer.

Pour effectuer les procédures de ce guide, vous devez posséder des connaissances élémentaires de Docker et de son fonctionnement. Pour plus d'informations sur Docker, consultez [Qu'est-ce que Docker ?](https://aws.amazon.com/docker/) et la [présentation de Docker](https://docs.docker.com/get-started/overview/).

**Table des matières**
+ [Étape 1 : Exécuter les prérequis](#create-container-image-prerequisite)
+ [Étape 2 : Créer un fichier Dockerfile et générer une image de conteneur](#create-container-image-create-dockerfile)
+ [Étape 3 : Exécuter votre nouvelle image de conteneur](#create-container-image-run-container)
+ [(Facultatif) Étape 4 : Nettoyer les conteneurs qui s'exécutent sur votre machine locale](#create-container-image-cleanup)
+ [Étapes suivantes après la création d'images de conteneur](#create-container-image-next-steps)

## Étape 1 : Exécuter les prérequis
<a name="create-container-image-prerequisite"></a>

Avant de commencer, vous devez installer le logiciel requis pour créer des conteneurs, puis les pousser vers votre service de conteneur Lightsail. Par exemple, vous devez installer et utiliser Docker pour créer et générer vos images de conteneur, que vous pourrez ensuite utiliser avec votre service de conteneur Lightsail. Pour de plus amples informations, veuillez consulter [Installation d'un logiciel pour gérer les images de conteneur pour vos services de conteneurs Amazon Lightsail](amazon-lightsail-install-software.md).

## Étape 2 : Créer un fichier Dockerfile et générer une image de conteneur
<a name="create-container-image-create-dockerfile"></a>

Procédez comme suit pour créer un fichier Dockerfile et l'utiliser pour générer une image de conteneur Docker `mystaticwebsite`. Pour un site Web statique simple, l'image de conteneur sera hébergée sur un serveur Web Apache sur Ubuntu.

1. Créez un dossier `mystaticwebsite` sur la machine locale où vous stockerez votre fichier Dockerfile.

1. Créez un fichier Dockerfile dans le dossier que vous venez de créer.

   Le fichier Dockerfile n'utilise pas d'extension de fichier, telle que `.TXT`. Le nom complet du fichier est `Dockerfile`.

1. Copiez l'un des blocs de code suivants en fonction de la façon dont vous souhaitez configurer votre image de conteneur, puis collez-le dans votre fichier Dockerfile :
   + **Si vous souhaitez créer une image de conteneur de site web statique simple avec un message Hello World**, copiez ensuite le bloc de code suivant et collez-le dans votre fichier Dockerfile. Cet exemple de code utilise l'image Ubuntu 18.04. Les instructions `RUN` mettent à jour les caches du package, installent et configurent Apache, puis impriment un message 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.

     ```
     FROM ubuntu:18.04
     
     # Install dependencies
     RUN apt-get update && \
      apt-get -y install apache2
     
     # Write hello world message
     RUN echo 'Hello World!' > /var/www/html/index.html
     
     # Open port 80
     EXPOSE 80
     
     # Start Apache service
     CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
     ```
   + **Si vous souhaitez utiliser votre propre ensemble de fichiers HTML pour votre image de conteneur de site web statique**, créez un dossier `html` dans le même dossier où vous stockez votre fichier Dockerfile. Ensuite, placez vos fichiers HTML dans ce dossier.

     Une fois que vos fichiers HTML sont dans le dossier `html`, copiez le bloc de code suivant et collez-le dans votre fichier Dockerfile. Cet exemple de code utilise l'image Ubuntu 18.04. Les instructions `RUN` mettent à jour les caches du package, puis installent et configurent Apache. L'instruction `COPY` copie le contenu du dossier html vers 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.

     ```
     FROM ubuntu:18.04
     
     # Install dependencies
     RUN apt-get update && \
      apt-get -y install apache2
     
     # Copy html directory files
     COPY html /var/www/html/
     
     # Open port 80
     EXPOSE 80
     
     CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
     ```

1. Ouvrez une invite de commandes ou une fenêtre de terminal et changez le répertoire vers le dossier dans lequel vous stockez votre fichier Dockerfile.

1. Saisissez la commande suivante pour générer votre image de conteneur à l'aide du fichier Dockerfile dans le dossier. Cette commande crée une nouvelle image de conteneur Docker nommée `mystaticwebsite`.

   ```
   docker build -t mystaticwebsite .
   ```

   Vous devriez voir un message confirmant que votre image a bien été générée.

1. Saisissez la commande suivante pour afficher les images de conteneur sur votre machine locale.

   ```
   docker images --filter reference=mystaticwebsite
   ```

   Le résultat doit ressembler à l'exemple suivant, affichant la nouvelle image de conteneur créée.  
![\[Résultat de la commande docker images\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/docker-images-command-result.png)

   Votre image de conteneur nouvellement construite est prête à être testée en l'utilisant pour exécuter un nouveau conteneur sur votre machine locale. Passez à la section suivante [Étape 3 : Exécuter votre nouvelle image de conteneur](#create-container-image-run-container) de ce guide.

## Étape 3 : Exécuter votre nouvelle image de conteneur
<a name="create-container-image-run-container"></a>

Procédez comme suit pour exécuter la nouvelle image de conteneur que vous avez créée.

1. Dans une invite de commandes ou une fenêtre de terminal, saisissez la commande suivante pour exécuter l'image de conteneur que vous avez créée à l'[Étape 2 : Créer un fichier Dockerfile et générer une image de conteneur](#create-container-image-create-dockerfile) de ce guide. L'option `-p 8080:80` mappe le port exposé 80 du conteneur au port 8080 de votre machine locale. L'option `-d` spécifie que le conteneur doit s'exécuter en mode détaché.

   ```
   docker container run -d -p 8080:80 --name mystaticwebsite mystaticwebsite:latest
   ```

1. Saisissez la commande suivante pour afficher vos conteneurs en cours d'exécution.

   ```
   docker container ls -a
   ```

   Le résultat doit ressembler à l'exemple suivant, affichant le nouveau conteneur en cours d'exécution.  
![\[Résultat de la commande « docker container »\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/docker-container-command-result.png)

1. Pour confirmer que le conteneur est opérationnel, ouvrez une nouvelle fenêtre de navigateur et accédez à `http://localhost:8080`. Un message semblable à l'exemple suivant doit s'afficher. Il confirme que votre conteneur est opérationnel sur votre machine locale.  
![\[Site web statique s'exécutant sur un conteneur Docker\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/container-mystaticsite-hello-world.png)

   Votre nouvelle image de conteneur est prête à être envoyée à votre compte Lightsail afin que vous puissiez la déployer sur votre service de conteneurs Lightsail. Pour de plus amples informations, veuillez consulter [Transmission et gestion d'images de conteneur sur vos services de conteneurs Amazon Lightsail](amazon-lightsail-pushing-container-images.md).

## (Facultatif) Étape 4 : Nettoyer les conteneurs qui s'exécutent sur votre machine locale
<a name="create-container-image-cleanup"></a>

Maintenant que vous avez créé une image de conteneur que vous pouvez envoyer à votre service de conteneurs Lightsail, il est temps de nettoyer les conteneurs qui s'exécutent sur votre machine locale en suivant les procédures décrites dans ce guide.

Procédez comme suit pour nettoyer les conteneurs qui s'exécutent sur votre machine locale :

1. Exécutez la commande suivante pour afficher les conteneurs qui s'exécutent sur votre machine locale.

   ```
   docker container ls -a
   ```

   Vous devriez obtenir un résultat similaire à ce qui suit, qui répertorie les noms des conteneurs s'exécutant sur votre machine locale.  
![\[Résultat de la commande « docker container »\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/docker-container-command-result.png)

1. Exécutez la commande suivante pour supprimer le conteneur en cours d'exécution que vous avez créé précédemment dans ce guide. Cela force le conteneur à s'arrêter et le supprime définitivement.

   ```
   docker container rm <ContainerName> --force
   ```

   Dans la commande, remplacez < ContainerName > par le nom du conteneur que vous souhaitez arrêter, puis supprimez.

   Exemple :

   ```
   docker container rm mystaticwebsite --force
   ```

   Le conteneur créé suivant les instructions de ce guide doit maintenant être supprimé.

## Prochaines étapes après la création d'images de conteneur
<a name="create-container-image-next-steps"></a>

Après avoir créé vos images de conteneur, poussez-les vers votre service de conteneurs Lightsail lorsque vous êtes prêt à les déployer. Pour plus d'informations, voir [Gérer les images du service de conteneur Lightsail](amazon-lightsail-pushing-container-images.md).

**Topics**
+ [Étape 1 : Exécuter les prérequis](#create-container-image-prerequisite)
+ [Étape 2 : Créer un fichier Dockerfile et générer une image de conteneur](#create-container-image-create-dockerfile)
+ [Étape 3 : Exécuter votre nouvelle image de conteneur](#create-container-image-run-container)
+ [(Facultatif) Étape 4 : Nettoyer les conteneurs qui s'exécutent sur votre machine locale](#create-container-image-cleanup)
+ [Prochaines étapes après la création d'images de conteneur](#create-container-image-next-steps)
+ [Gérer les images de conteneur](amazon-lightsail-pushing-container-images.md)
+ [Installer le plugin Container Services](amazon-lightsail-install-software.md)
+ [Accès au référentiel privé Amazon ECR](amazon-lightsail-container-service-ecr-private-repo-access.md)

# Envoyer, afficher et supprimer des images de conteneur pour un service de conteneur Lightsail
<a name="amazon-lightsail-pushing-container-images"></a>

Lorsque vous créez un déploiement dans votre service de conteneur Amazon Lightsail, vous devez spécifier une image de conteneur source pour chaque entrée de conteneur. Vous pouvez utiliser des images provenant d'un registre public, comme Amazon ECR Public Gallery, ou des images que vous créez sur votre ordinateur local. Dans ce guide, nous vous expliquons comment transmettre des images de conteneur de votre ordinateur local vers votre service de conteneur Lightsail. Pour plus d'informations, veuillez consulter [Création d'images de conteneur pour vos services de conteneurs](amazon-lightsail-creating-container-images.md).

**Table des matières**
+ [Conditions préalables](#push-container-images-prerequisites)
+ [Transmettre des images de conteneur de votre ordinateur local à votre service de conteneur](#push-container-images)
+ [Afficher les images de conteneur stockées sur votre service de conteneur](#view-pushed-container-images)
+ [Supprimer les images de conteneur stockées sur votre service de conteneur](#delete-stored-container-images)

## Conditions préalables
<a name="push-container-images-prerequisites"></a>

Respectez les conditions préalables suivantes avant de commencer à transmettre vos images de conteneur à votre service de conteneur :
+ Créez votre service de conteneur dans votre compte Lightsail. Pour de plus amples informations, veuillez consulter [Création de services de conteneur Amazon Lightsail](amazon-lightsail-creating-container-services.md).
+ Installez sur votre ordinateur local le logiciel dont vous avez besoin pour créer vos propres images de conteneur et transmettez-les à votre service de conteneur Lightsail. Pour de plus amples informations, veuillez consulter [Installation d'un logiciel pour gérer les images de conteneur pour vos services de conteneur Amazon Lightsail](amazon-lightsail-install-software.md).
+ Créez des images de conteneur sur votre ordinateur local, que vous pouvez transmettre à votre service de conteneur Lightsail. Pour de plus amples informations, veuillez consulter [Création d'images de conteneur pour vos services de conteneur Amazon Lightsail](amazon-lightsail-creating-container-images.md).

## Transmettre des images de conteneur de votre ordinateur local à votre service de conteneur
<a name="push-container-images"></a>

Suivez la procédure ci-dessous pour transmettre vos images de conteneur à votre service de conteneur.

1. Ouvrez une invite de commande ou une fenêtre de terminal.

1. Dans l'invite de commande ou la fenêtre de terminal, entrez la commande suivante pour afficher les images Docker qui se trouvent actuellement sur votre ordinateur local.

   ```
   docker images
   ```

1. Dans le résultat, recherchez le nom (nom du référentiel) et la balise de l'image de conteneur que vous souhaitez transmettre à votre service de conteneur. Notez-les, car vous en aurez besoin lors de l'étape suivante.  
![\[Images de conteneur Docker sur un ordinateur local\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/amazon-lightsail-container-service-docker-images.png)

1. Entrez la commande suivante pour transmettre l'image de conteneur de votre ordinateur local vers votre service de conteneur.

   ```
   aws lightsail push-container-image --region <Region> --service-name <ContainerServiceName> --label <ContainerImageLabel> --image <LocalContainerImageName>:<ImageTag>
   ```

   Dans la commande, remplacez :
   + *<Region>*avec la région AWS dans laquelle votre service de conteneur a été créé.
   + *<ContainerServiceName>*avec le nom de votre service de conteneurs.
   + *<ContainerImageLabel>*avec l'étiquette à laquelle vous souhaitez attribuer l'image de votre conteneur lorsqu'il est stocké sur votre service de conteneurs. Donnez-lui un nom facile à comprendre que vous pouvez utiliser pour suivre les différentes versions de vos images de conteneur enregistrées.

     L'étiquette fera partie du nom de l'image du conteneur généré par votre service de conteneur. Par exemple, si votre nom de service de conteneur est `container-service-1`, l'étiquette de l'image de conteneur est `mystaticsite` et qu'il s'agit de la première version de l'image de conteneur que vous transmettez, le nom de l'image généré par votre service de conteneur sera `:container-service-1.mystaticsite.1`.
   + *<LocalContainerImageName>*avec le nom de l'image du conteneur que vous souhaitez envoyer à votre service de conteneur. Vous avez obtenu le nom de l'image du conteneur à l'étape précédente de cette procédure.
   + *<ImageTag>*avec le tag de l'image du conteneur que vous souhaitez envoyer à votre service de conteneur. Vous avez obtenu l'identification de l'image du conteneur à l'étape précédente de cette procédure.

   Exemple :

   ```
   aws lightsail push-container-image --region us-west-2 --service-name myservice --label mystaticwebsite --image mystaticwebsite:v2
   ```

   Vous devriez voir un résultat similaire à l'exemple suivant, qui confirme que votre image de conteneur a été transmise à votre service de conteneur.  
![\[Image de conteneur Docker envoyée vers un service de conteneur Lightsail\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/amazon-lightsail-container-service-pushed-image.png)

   Reportez-vous à la section suivante [Afficher les images de conteneur stockées sur votre service de conteneur](#view-pushed-container-images) de ce guide pour afficher votre image de conteneur transmise dans votre service de conteneur sur la console Lightsail.

## Afficher les images de conteneur stockées sur votre service de conteneur
<a name="view-pushed-container-images"></a>

Suivez la procédure ci-dessous pour afficher les images de conteneur qui ont été transmises et sont stockées sur votre service de conteneur.

1. Connectez-vous à la console [Lightsail](https://lightsail.aws.amazon.com/).

1. Dans le volet de navigation de gauche, choisissez **Containers**.

1. Choisissez le nom du service de conteneur pour lequel vous souhaitez afficher les images de conteneur stockées.

1. Sur la page de gestion des services de conteneur, choisissez l'onglet **Images**.
**Note**  
L'onglet **Images** ne s'affiche pas si vous n'avez pas transmis les images à votre service de conteneur. Pour afficher l'onglet des images de votre service de conteneur, vous devez d'abord transmettre les images de conteneur à votre service.

   La page **Images** répertorie les images de conteneur qui ont été transmises à votre service de conteneur et qui sont actuellement stockées sur votre service. Les images de conteneur utilisées dans un déploiement actuel ne peuvent pas être supprimées et sont répertoriées avec une icône de suppression grisée.  
![\[La page des images stockées de la console Lightsail\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/amazon-lightsail-container-services-stored-images-page.png)

   Vous pouvez créer des déploiements à l'aide d'images de conteneur stockées sur votre service. Pour de plus amples informations, veuillez consulter Création et gestion de déploiements pour vos services de conteneur Amazon Lightsail.

## Supprimer les images de conteneur stockées sur votre service de conteneur
<a name="delete-stored-container-images"></a>

Suivez la procédure ci-dessous pour supprimer les images de conteneur qui ont été transmises et sont stockées sur votre service de conteneur.

1. Connectez-vous à la console [Lightsail](https://lightsail.aws.amazon.com/).

1. Dans le volet de navigation de gauche, choisissez **Containers**.

1. Choisissez le nom du service de conteneur pour lequel vous souhaitez afficher le déploiement en cours.

1. Sur la page de gestion des services de conteneur, choisissez l'onglet **Images**.
**Note**  
L'onglet **Images** ne s'affiche pas si vous n'avez pas transmis les images à votre service de conteneur. Pour afficher l'onglet des images de votre service de conteneur, vous devez d'abord transmettre les images de conteneur à votre service.

1. Recherchez l'image de conteneur que vous souhaitez supprimer, puis choisissez l'icône de suppression (corbeille).
**Note**  
Les images de conteneur utilisées dans un déploiement actuel ne peuvent pas être supprimées et leurs icônes de suppression sont grisées.

1. Dans l'invite de confirmation qui s'affiche, choisissez **Oui, supprimer** pour confirmer que vous souhaitez supprimer définitivement l'image stockée.

   Votre image de conteneur stockée est immédiatement supprimée de votre service de conteneur.

# Installez Docker et le AWS CLI plugin Lightsail Control pour les conteneurs
<a name="amazon-lightsail-install-software"></a>

Vous pouvez utiliser la console Amazon Lightsail pour créer vos services de conteneur Lightsail et créer des déploiements à l'aide d'images de conteneurs provenant d'un registre public en ligne, tel qu'Amazon ECR Public Gallery. Pour créer vos propres images de conteneur et les transmettre vers votre service de conteneurs, vous devez installer le logiciel supplémentaire suivant sur le même ordinateur que celui où vous prévoyez de créer vos images de conteneur :
+ **Docker** — Exécutez, testez et créez vos propres images de conteneur que vous pourrez ensuite utiliser avec votre service de conteneur Lightsail.
+ **AWS Command Line Interface (AWS CLI)** — Spécifiez les paramètres des images de conteneur que vous créez, puis envoyez-les vers votre service de conteneur Lightsail. Les versions 2.1.1 et ultérieures fonctionneront avec le plugin Lightsail Control.
+ Plug-in **Lightsail Control (lightsailctl)** — Permet d'accéder aux images du conteneur qui se trouvent sur AWS CLI la machine locale.

Les sections suivantes de ce guide décrivent l'endroit où télécharger ces packages logiciels et comment les installer. Pour plus d'informations sur les services de conteneurs, veuillez consulter [Services de conteneurs](amazon-lightsail-container-services.md).

**Table des matières**
+ [Installer Docker](#install-software-docker)
+ [Installez le AWS CLI](#install-software-aws-cli)
+ [Installez le plugin Lightsail Control](#install-software-lightsailctl)
  + [Installation du plugin lightsailctl sous Windows](#install-lightsailctl-on-windows)
  + [Installation du plugin lightsailctl sous macOS](#install-lightsailctl-on-macos)
  + [Installation du plugin lightsailctl sous Linux](#install-lightsailctl-on-linux)

## Installer Docker
<a name="install-software-docker"></a>

Docker est une technologie qui vous permet de créer, d'exécuter, de tester et de déployer des applications distribuées basées sur des conteneurs Linux. Vous devez installer et utiliser le logiciel Docker si vous souhaitez créer vos propres images de conteneur que vous pourrez ensuite utiliser avec votre service de conteneur Lightsail. Pour plus d'informations, voir [Création d'images de conteneur pour vos services de conteneurs Lightsail](amazon-lightsail-creating-container-images.md).

Docker est disponible pour plusieurs systèmes d'exploitation, notamment les distributions Linux les plus modernes, comme Ubuntu et même MacOS et Windows. Pour plus d'informations sur la façon d'installer Docker sur votre système d'exploitation, veuillez consulter le [manuel d'installation de Docker](https://docs.docker.com/engine/installation/#installation).

**Note**  
La dernière version de Docker doit toujours être installée. Il n'est pas garanti que les anciennes versions de Docker fonctionnent avec le AWS CLI plugin Lightsail Control (lightsailctl) décrit plus loin dans ce guide. 

## Installez le AWS CLI
<a name="install-software-aws-cli"></a>

Il s' AWS CLI agit d'un outil open source qui vous permet d'interagir avec des AWS services, tels que Lightsail, à l'aide de commandes dans votre shell de ligne de commande. Vous devez installer et utiliser le AWS CLI pour transférer les images de vos conteneurs, créées sur votre machine locale, vers votre service de conteneur Lightsail.

 AWS CLI Il est disponible dans les versions suivantes :
+ **Version 2.x** : version actuelle généralement disponible de l' AWS CLI. Il s'agit de la version majeure la plus récente. Elle prend en charge toutes les fonctionnalités les plus récentes, y compris la possibilité de transférer des images de conteneur vers vos services de conteneurs Lightsail. AWS CLI Les versions 2.1.1 et ultérieures fonctionneront avec le plugin Lightsail Control.
+ **Version 1.x** — La version précédente est disponible pour AWS CLI des raisons de rétrocompatibilité. Cette version ne permet pas de transférer les images de vos conteneurs vers vos services de conteneurs Lightsail. Par conséquent, vous devez plutôt installer la AWS CLI version 2.

La AWS CLI version 2 est disponible pour les systèmes d'exploitation Linux, macOS et Windows. Pour savoir comment installer le AWS CLI sur ces systèmes d'exploitation, consultez la section [Installation de la AWS CLI version 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) dans le *guide de AWS CLI l'utilisateur*.

## Installez le plugin Lightsail Control
<a name="install-software-lightsailctl"></a>

Le plugin Lightsail Control (lightsailctl) est une application légère qui permet d'accéder aux images de conteneur que vous AWS CLI avez créées sur votre machine locale. Il vous permet de transférer des images de conteneur vers votre service de conteneur Lightsail, afin de pouvoir les déployer sur votre service.

**Configuration système requise**
+ Système d'exploitation Windows, macOS ou Linux avec prise en charge 64 bits.
+ AWS CLI la version 2 doit être installée sur votre machine locale pour pouvoir utiliser le plugin lightsailctl. Pour plus d'informations, veuillez consulter [Installation de l' AWS CLI](#install-software-aws-cli) plus haut dans ce guide.

**Utilisez la dernière version du plugin lightsailctl**

Le plugin lightsailctl est mis à jour occasionnellement avec des fonctionnalités améliorées. Chaque fois que vous utilisez le plugin lightsailctl, il effectue une vérification pour confirmer que vous utilisez la dernière version. S'il constate qu'une nouvelle version est disponible, il vous invite à mettre à jour vers la version la plus récente pour profiter des dernières fonctions. Lorsqu'une version mise à jour est disponible, vous devez relancez le processus d'installation pour obtenir la version la plus récente du plugin lightsailctl.

Le tableau suivant répertorie toutes les versions du plugin lightsailctl, ainsi que les fonctionnalités et les améliorations incluses dans chaque version.
+ **v1.0.0 (publiée le 12 novembre 2020)** — La version initiale ajoute une fonctionnalité à la AWS CLI version 2 permettant de transférer des images de conteneur vers un service de conteneur Lightsail.

### Installation du plugin lightsailctl sous Windows
<a name="install-lightsailctl-on-windows"></a>

Procédez comme suit pour installer le plugin lightsailctl sous Windows.

1. Téléchargez l'exécutable à partir de l'URL suivante et enregistrez-le dans le répertoire `C:\Temp\lightsailctl\`.

   ```
   https://s3.us-west-2.amazonaws.com/lightsailctl/latest/windows-amd64/lightsailctl.exe
   ```

1. Cliquez sur le bouton Windows **Démarrer**, puis recherchez `cmd`.

1. Dans les résultats de la recherche, cliquez avec le bouton droit sur l'application **Invite de commandes** et choisissez **Exécuter en tant qu'administrateur**.  
![\[Invite Run Command en tant qu'administrateur\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/lightsailctl-cmd-run-as-administrator.png)
**Note**  
Une invite peut s'afficher vous demandant si vous souhaitez autoriser l'invite de commande à apporter des modifications à votre appareil. Vous devez choisir **Oui** pour poursuivre l'installation.

1. Saisissez la commande suivante pour définir une variable d'environnement de chemin qui pointe vers le répertoire `C:\Temp\lightsailctl\` dans lequel vous avez enregistré le plugin lightsailctl.

   ```
   setx PATH "%PATH%;C:\Temp\lightsailctl" /M
   ```

   Le résultat doit ressembler à l'exemple suivant.  
![\[Réponse en ligne de commande à la commande setx\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/lighstailctl-setx-command.png)

La commande `setx` sera tronquée au-delà de 1024 caractères. Utilisez la procédure suivante pour définir manuellement la variable d'environnement path si plusieurs variables sont déjà définies dans votre PATH. 

1. Dans le menu **Démarrer**, ouvrez le **Panneau de configuration**.

1. Choisissez **Système et sécurité**, puis **Système**.

1. Choisissez **Paramètres système avancés**.

1. Dans la boîte de dialogue **Propriétés système** ouvrez l'onglet **Avancé** et choisissez **Variables d'environnement**.

1. Dans la zone **Variables système** de la boîte de dialogue **Variables d'environnement**, sélectionnez **Path**.

1. Cliquez sur le bouton **Modifier** situé sous la zone **Variables système**.  
![\[Variables système Windows\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/lightsail-windows-system-variables.png)

1. Choisissez **Nouveau**, puis saisissez le chemin suivant :`C:\Temp\lightsailctl\`  
![\[Variables d'environnement Windows\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/lightsail-windows-edit-env-variable.png)

1. Choisissez **OK** dans trois boîtes de dialogue successives, puis fermez la boîte de dialogue **Système**.

Vous êtes maintenant prêt à utiliser le AWS Command Line Interface (AWS CLI) pour transférer des images de conteneurs vers votre service de conteneurs Lightsail. Pour plus d'informations, veuillez consulter [Transmission et gestion des images de conteneur](amazon-lightsail-pushing-container-images.md).

### Installation du plugin lightsailctl sous macOS
<a name="install-lightsailctl-on-macos"></a>

Exécutez l'une des procédures suivantes pour télécharger et installer le plugin lightsailctl sous macOS.

**Téléchargement et installation de Homebrew**

1. Ouvrez une fenêtre du terminal.

1. Saisissez la commande suivante pour télécharger et installer le plugin lightsailctl.

   ```
   brew install aws/tap/lightsailctl
   ```
**Note**  
Pour de plus amples informations sur Homebrew, veuillez consulter le site web [Homebrew](https://brew.sh/).

**Téléchargement et installation manuels**

1. Ouvrez une fenêtre du terminal.

1. Saisissez la commande suivante pour télécharger et installer le plugin lightsailctl et le copier dans le répertoire « bin ».

   ```
   curl "https://s3.us-west-2.amazonaws.com/lightsailctl/latest/darwin-amd64/lightsailctl" -o "/usr/local/bin/lightsailctl"
   ```

1. Saisissez la commande suivante pour rendre le plugin exécutable.

   ```
   chmod +x /usr/local/bin/lightsailctl
   ```

1. Saisissez la commande suivante pour effacer les attributs étendus du plugin.

   ```
   xattr -c /usr/local/bin/lightsailctl
   ```

Vous êtes maintenant prêt à utiliser le pour transférer AWS CLI des images de conteneurs vers votre service de conteneurs Lightsail. Pour plus d'informations, veuillez consulter [Transmission et gestion des images de conteneur](amazon-lightsail-pushing-container-images.md).

### Installation du plugin lightsailctl sous Linux
<a name="install-lightsailctl-on-linux"></a>

Suivez la procédure ci-dessous pour installer le plug-in des services de conteneur Lightsail sous Linux.

1. Ouvrez une fenêtre du terminal.

1. Saisissez la commande suivante pour télécharger le plugin lightsailctl.
   + Pour la version 64 bits de l'architecture AMD du plugin :

     ```
     curl "https://s3.us-west-2.amazonaws.com/lightsailctl/latest/linux-amd64/lightsailctl" -o "/usr/local/bin/lightsailctl"
     ```
   + Pour la version 64 bits de l'architecture ARM du plugin :

     ```
     curl "https://s3.us-west-2.amazonaws.com/lightsailctl/latest/linux-arm64/lightsailctl" -o "/usr/local/bin/lightsailctl"
     ```

1. Saisissez la commande suivante pour rendre le plugin exécutable.

   ```
   sudo chmod +x /usr/local/bin/lightsailctl
   ```

   Vous êtes maintenant prêt à utiliser le pour transférer AWS CLI des images de conteneurs vers votre service de conteneurs Lightsail. Pour plus d'informations, veuillez consulter [Transmission et gestion des images de conteneur](amazon-lightsail-pushing-container-images.md).

# Accordez aux services de conteneur Lightsail l'accès aux référentiels privés Amazon ECR
<a name="amazon-lightsail-container-service-ecr-private-repo-access"></a>

Amazon Elastic Container Registry (Amazon ECR) est AWS un service de registre d'images de conteneurs géré qui prend en charge les référentiels privés dotés d'autorisations basées sur les ressources en utilisant (IAM). Gestion des identités et des accès AWS Vous pouvez autoriser vos services de conteneur Amazon Lightsail à accéder à vos référentiels privés Amazon ECR. Région AWS Vous pouvez ensuite déployer des images de votre référentiel privé vers vos services de conteneur.

Vous pouvez gérer l'accès à vos services de conteneur Lightsail et à vos référentiels privés Amazon ECR à l'aide de la console Lightsail ou du (). AWS Command Line Interface AWS CLI Toutefois, nous vous recommandons d'utiliser la console Lightsail car elle simplifie le processus.

Pour plus d'informations sur les services de conteneurs, veuillez consulter [Services de conteneurs](amazon-lightsail-container-services.md). Pour plus d'informations sur la sécurité dans Amazon ECR, veuillez consulter le [Guide de l'utilisateur Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html).

**Table des matières**
+ [Autorisations requises](#ecr-private-repos-permissions)
+ [Utiliser la console Lightsail pour gérer l'accès aux référentiels privés](#ecr-private-repo-access-lightsail-console)
+ [Utilisez le AWS CLI pour gérer l'accès aux référentiels privés](#ecr-private-repo-access-cli)
  + [Activer ou désactiver le rôle IAM extracteur d'image d'Amazon ECR](#activate-ecr-puller-role)
  + [Déterminer si votre référentiel privé Amazon ECR possède une déclaration de politique](#identify-ecr-repo-policy-statement)
    + [Ajouter une politique à un référentiel privé qui ne possède pas de déclaration de politique](#ecr-private-repo-add-policy-no-policy)
    + [Ajouter une politique à un référentiel privé qui possède une déclaration de politique](#ecr-private-repo-add-policy-existing-policy)

## Autorisations requises
<a name="ecr-private-repos-permissions"></a>

L'utilisateur qui gérera l'accès des services de conteneur Lightsail aux référentiels privés Amazon ECR doit disposer de l'une des politiques d'autorisation suivantes dans IAM. Pour plus d'informations, veuillez consulter [Ajout et suppression d'autorisations basées sur l'identité IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) dans le *Guide de l'utilisateur Gestion des identités et des accès AWS *.

**Accorder l'accès à n'importe quel référentiel privé Amazon ECR**

La stratégie d'autorisation suivante accorde des autorisations à l'utilisateur pour configurer l'accès à n'importe quel référentiel privé Amazon ECR.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ManageEcrPrivateRepositoriesAccess",
            "Effect": "Allow",
            "Action": [
                "ecr:SetRepositoryPolicy",
                "ecr:DescribeRepositories",
                "ecr:DeleteRepositoryPolicy",
                "ecr:GetRepositoryPolicy"
            ],
            "Resource": "arn:aws:ecr:*:111122223333:repository/*"
        }
    ]
}
```

------

Dans la politique, remplacez-le *AwsAccountId* par le numéro d'identification de votre AWS compte.

**Accorder l'accès à un référentiel privé Amazon ECR spécifique**

La politique d'autorisation suivante accorde des autorisations à l'utilisateur pour configurer l'accès à un référentiel privé Amazon ECR spécifique, dans une Région AWS spécifique.

Dans la politique, remplacez l'exemple de texte suivant par le vôtre :
+ *AwsRegion*— Le Région AWS code (par exemple,`us-east-1`) du dépôt privé. Votre service de conteneur Lightsail doit se trouver dans le Région AWS même emplacement que les référentiels privés auxquels vous souhaitez accéder.
+ *AwsAccountId*— Le numéro d'identification de votre AWS compte.
+ *RepositoryName*— Le nom du dépôt privé dont vous souhaitez gérer l'accès.

Voici un exemple de politique d'autorisations remplie avec des exemples de valeurs.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ManageEcrPrivateRepositoriesAccess",
            "Effect": "Allow",
            "Action": [
                "ecr:SetRepositoryPolicy",
                "ecr:DescribeRepositories",
                "ecr:DeleteRepositoryPolicy",
                "ecr:GetRepositoryPolicy"
            ],
            "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/my-private-repo"
        }
    ]
}
```

------

## Utiliser la console Lightsail pour gérer l'accès aux référentiels privés
<a name="ecr-private-repo-access-lightsail-console"></a>

Suivez la procédure suivante pour utiliser la console Lightsail afin de gérer l'accès d'un service de conteneur Lightsail à un référentiel privé Amazon ECR.

1. Connectez-vous à la console [Lightsail](https://lightsail.aws.amazon.com/).

1. Dans le volet de navigation de gauche, choisissez **Containers**.

1. Choisissez le nom du service de conteneurs pour lequel vous souhaitez configurer l'accès à un référentiel privé Amazon ECR.  
![\[Service de conteneurs dans la console Lightsail\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/container-service-card.png)

1. Cliquez sur l'onglet **Images**.  
![\[Onglet Images sur la page de gestion des services de conteneur de la console Lightsail\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/container-service-images-tab.png)

1. Choisissez **Ajouter un référentiel** pour autoriser votre service de conteneurs à accéder à un référentiel privé Amazon ECR.
**Note**  
Vous pouvez choisir **Supprimer** pour supprimer l'accès de votre service de conteneur à un référentiel privé Amazon ECR précédemment ajouté.  
![\[Section des référentiels privés Amazon ECR de l'onglet Images\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/container-service-ecr-repos-section.png)

1. Dans la liste déroulante qui s'affiche, sélectionnez le référentiel privé auquel vous souhaitez accéder, et choisissez **Add** (Ajouter).  
![\[Sélection dans la liste déroulante de référentiels privés Amazon ECR\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/container-service-ecr-repos-selection.png)

   Lightsail met quelques instants à activer le rôle IAM d'extraction d'images Amazon ECR pour votre service de conteneur, qui inclut un Amazon Resource Name (ARN) principal. Lightsail ajoute ensuite automatiquement l'ARN principal du rôle IAM à la politique d'autorisation du référentiel privé Amazon ECR que vous avez sélectionné. Cela permet à votre service de conteneur d'accéder au référentiel privé et à ses images. Ne fermez pas la fenêtre du navigateur avant que le modal qui s'affiche n'indique que le processus est terminé et que vous pouvez choisir **Continue** (Continuer).  
![\[Modal confirmant que les autorisations sont ajoutées au référentiel privé Amazon ECR\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/container-service-ecr-repos-confirmation-modal.png)

1. Choisissez **Continue** (Continuer) lorsque l'activation est terminée.

   Après que le référentiel privé Amazon ECR sélectionné est ajouté, il est répertorié dans la section **Répertoires privés Amazon ECR** de la page. La page contient des instructions sur le déploiement d'une image depuis le référentiel privé vers votre service de conteneur Lightsail. Pour utiliser une image de votre référentiel, spécifiez le format URI affiché sur la page comme **Image** lors du déploiement de votre service de conteneur. Dans l'URI que vous spécifiez, remplacez l'exemple *\$1image tag\$1* par la balise de l'image que vous souhaitez déployer. Pour plus d'informations, veuillez consulter [Création et gestion des déploiements pour vos services de conteneurs](amazon-lightsail-container-services-deployments.md).  
![\[Étapes suivantes après l'ajout d'un référentiel privé Amazon ECR\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/container-service-ecr-repos-next-steps.png)

## Utilisez le AWS CLI pour gérer l'accès aux référentiels privés
<a name="ecr-private-repo-access-cli"></a>

La gestion de l'accès d'un service de conteneur Lightsail à un référentiel privé Amazon ECR à l'aide AWS Command Line Interface du AWS CLI() nécessite les étapes suivantes :

**Important**  
Nous vous recommandons d'utiliser la console Lightsail pour gérer l'accès d'un service de conteneur Lightsail à un référentiel privé Amazon ECR, car cela simplifie le processus. Pour plus d'informations, voir [Utiliser la console Lightsail pour gérer l'accès aux référentiels privés](#ecr-private-repo-access-lightsail-console) plus haut dans ce guide.

1. **Activer ou désactiver le rôle IAM d'extraction d'images Amazon ECR : utilisez la commande Lightsail AWS CLI `update-container-service` pour activer ou désactiver le rôle** IAM d'extraction d'images Amazon ECR. Un Amazon Resource Name (ARN) principal est créé pour le rôle IAM extracteur d'image d'Amazon ECR lorsque vous l'activez. Pour plus d'informations, veuillez consulter la section [Activation ou désactivation du rôle IAM extracteur d'image d'Amazon ECR](#activate-ecr-puller-role) de ce guide.

1. **Déterminer si votre référentiel privé Amazon ECR possède une déclaration de politique** : une fois que vous avez activé le rôle IAM extracteur d'image d'Amazon ECR, vous devez déterminer si le référentiel privé Amazon ECR auquel vous souhaitez accéder avec votre service de conteneurs possède une déclaration de politique existante. Pour plus d'informations, veuillez consulter [Déterminer si votre référentiel privé Amazon ECR possède une déclaration de politique](#identify-ecr-repo-policy-statement) plus loin dans ce guide. 

   Vous ajoutez l'ARN principal du rôle IAM à votre référentiel à l'aide de l'une des méthodes suivantes, selon que votre référentiel possède une déclaration de politique existante ou non :

   1. **Ajoutez une politique à un référentiel privé qui ne contient pas de déclaration de politique** : utilisez la AWS CLI `set-repository-policy` commande Amazon ECR pour ajouter l'ARN principal du rôle d'extraction d'images Amazon ECR pour votre service de conteneur à un référentiel privé doté d'une politique existante. Pour plus d'informations, consultez [Ajouter une politique à un référentiel privé qui ne possède pas de déclaration de politique](#ecr-private-repo-add-policy-no-policy) plus loin dans ce guide.

   1. **Ajoutez une politique à un référentiel privé contenant une déclaration de politique** : utilisez la AWS CLI `set-repository-policy` commande Amazon ECR pour ajouter le rôle d'extracteur d'images Amazon ECR pour votre service de conteneur à un référentiel privé qui n'a pas de politique existante. Pour plus d'informations, consultez [Ajouter une politique à un référentiel privé qui possède une déclaration de politique](#ecr-private-repo-add-policy-existing-policy) plus loin dans ce guide.

### Activer ou désactiver le rôle IAM extracteur d'image d'Amazon ECR
<a name="activate-ecr-puller-role"></a>

Suivez la procédure suivante pour activer ou désactiver le rôle IAM d'extraction d'images Amazon ECR pour votre service de conteneur Lightsail. Vous pouvez activer ou désactiver le rôle IAM d'extraction d'images Amazon ECR à l'aide de la commande AWS CLI `update-container-service` Lightsail. Pour plus d’informations, consultez [update-container-service](https://docs.aws.amazon.com/cli/latest/reference/lightsail/update-container-service.html) dans la *Référence des commandes de l’AWS CLI *.

**Note**  
Vous devez l'installer AWS CLI et le configurer pour Lightsail avant de poursuivre cette procédure. Pour plus d'informations, voir [Configurer le AWS CLI pour qu'il fonctionne avec Lightsail](lightsail-how-to-set-up-and-configure-aws-cli.md).

1. Ouvrez une invite de commande ou une fenêtre de terminal.

1. Saisissez la commande suivante pour mettre à jour un service de conteneurs et activer ou désactiver le rôle IAM extracteur d'image d'Amazon ECR.

   ```
   aws lightsail update-container-service --service-name ContainerServiceName --private-registry-access ecrImagePullerRole={isActive=RoleActivationState} --region AwsRegionCode
   ```

   Dans la commande, remplacez l'exemple de texte suivant par le vôtre :
   + *ContainerServiceName*— Le nom du service de conteneur pour lequel activer ou désactiver le rôle IAM d'extraction d'images Amazon ECR.
   + *RoleActivationState*— État d'activation du rôle IAM d'extraction d'images Amazon ECR. Spécifiez `true` pour activer le rôle ou `false` pour le désactiver.
   + *AwsRegionCode*— Le Région AWS code du service de conteneurs (par exemple,`us-east-1`).

   Exemples :
   + Pour activer le rôle IAM extracteur d'image d'Amazon ECR :

     ```
     aws lightsail update-container-service --service-name my-container-service --private-registry-access ecrImagePullerRole={isActive=true} --region us-east-1
     ```
   + Pour désactiver le rôle IAM extracteur d'image d'Amazon ECR :

     ```
     aws lightsail update-container-service --service-name my-container-service --private-registry-access ecrImagePullerRole={isActive=false} --region us-east-1
     ```

1. Si vous :
   + **avez activé le rôle extracteur d'image d'Amazon ECR** : attendez au moins 30 secondes après avoir reçu la réponse précédente. Ensuite, passez à l'étape suivante pour obtenir l'ARN principal du rôle IAM extracteur d'image d'Amazon ECR pour votre service de conteneurs.
   + **avez désactivé le rôle d'extracteur d'image d'Amazon ECR** : si vous avez déjà ajouté l'ARN principal du rôle IAM extracteur d'image d'Amazon ECR à la stratégie d'autorisations de votre référentiel privé Amazon ECR, vous devez supprimer cette politique d'autorisations de votre référentiel. Pour plus d'informations, veuillez consulter [Supprimer une déclaration de politique de référentiel privé](https://docs.aws.amazon.com/AmazonECR/latest/userguide/delete-repository-policy.html) dans le *Guide de l'utilisateur Amazon ECR*.

1. Saisissez la commande suivante pour obtenir l'ARN principal du rôle IAM extracteur d'image d'Amazon ECR pour votre service de conteneurs.

   ```
   aws lightsail get-container-services --service-name ContainerServiceName --region AwsRegionCode
   ```

   Dans la commande, remplacez l'exemple de texte suivant par le vôtre :
   + *ContainerServiceName*— Le nom du service de conteneur pour lequel vous souhaitez obtenir l'ARN principal du rôle IAM de l'extracteur d'images Amazon ECR.
   + *AwsRegionCode*— Le Région AWS code du service de conteneurs (par exemple,`us-east-1`).

   Exemple :

   ```
   aws lightsail get-container-services --service-name my-container-service --region us-east-1
   ```

   Recherchez l'ARN principal du rôle IAM extracteur d'image d'ECR dans la réponse. Si un rôle est répertorié, copiez-le ou notez-le. Vous en aurez besoin pour la section suivante de ce guide. Ensuite, vous devez déterminer s'il existe une déclaration de politique existante pour le référentiel privé Amazon ECR auquel vous souhaitez accéder avec votre service de conteneurs. Poursuivez vers la section [Déterminer si votre référentiel privé Amazon ECR possède une déclaration de politique](#identify-ecr-repo-policy-statement) de ce guide.

### Déterminer si votre référentiel privé Amazon ECR possède une déclaration de politique
<a name="identify-ecr-repo-policy-statement"></a>

Utilisez la procédure suivant pour déterminer si votre référentiel privé Amazon ECR possède une déclaration de stratégie. Vous pouvez utiliser la AWS CLI `get-repository-policy` commande pour Amazon ECR. Pour plus d’informations, consultez [update-container-service](https://docs.aws.amazon.com/cli/latest/reference/ecr/get-repository-policy.html) dans la *Référence des commandes de l’AWS CLI *.

**Note**  
Vous devez l'installer AWS CLI et le configurer pour Amazon ECR avant de poursuivre cette procédure. Pour plus d'informations, veuillez consulter [Configuration avec Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/get-set-up-for-amazon-ecr.html) dans le *Guide de l'utilisateur Amazon ECR*.

1. Ouvrez une invite de commande ou une fenêtre de terminal.

1. Saisissez la commande suivante pour obtenir la déclaration de politique d'un référentiel privé spécifique.

   ```
   aws ecr get-repository-policy --repository-name RepositoryName --region AwsRegionCode
   ```

   Dans la commande, remplacez l'exemple de texte suivant par le vôtre :
   + *RepositoryName*— Le nom du référentiel privé pour lequel vous souhaitez configurer l'accès pour un service de conteneur Lightsail.
   + *AwsRegionCode*— Le Région AWS code du dépôt privé (par exemple,`us-east-1`).

   Exemple :

   ```
   aws ecr get-repository-policy --repository-name my-private-repo --region us-east-1
   ```

   Vous devriez voir l'une des réponses suivantes :
   + **RepositoryPolicyNotFoundException**— Votre dépôt privé ne contient pas de déclaration de politique. Si votre référentiel ne possède pas de déclaration de politique, suivez les étapes décrites dans la section [Ajouter une politique à un référentiel privé qui ne possède pas de déclaration de politique](#ecr-private-repo-add-policy-no-policy) plus loin dans ce guide.  
![\[Réponse à la get-repository-policy commande pour un dépôt privé ne comportant pas de déclaration de politique\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/ecr-no-policy-statement.png)
   + **A repository policy was found** (Une politique de référentiel a été trouvée) – Votre référentiel privé possède une déclaration de politique, qui s'affiche dans la réponse de votre demande. Si votre référentiel possède une déclaration de politique, copiez la politique existante, puis suivez les étapes décrites dans la section [Ajouter une politique à un référentiel privé qui possède une déclaration de politique](#ecr-private-repo-add-policy-existing-policy) plus loin dans ce guide.  
![\[Réponse à la get-repository-policy commande pour un dépôt privé contenant une déclaration de politique\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/ecr-existing-policy-statement.png)

### Ajouter une politique à un référentiel privé qui ne possède pas de déclaration de politique
<a name="ecr-private-repo-add-policy-no-policy"></a>

Procédez comme suit pour ajouter une politique à un référentiel privé Amazon ECR qui n'a pas de déclaration de stratégie. La politique que vous ajoutez doit inclure l'ARN principal du rôle IAM de l'extracteur d'images Amazon ECR de votre service de conteneur Lightsail. Cela autorise votre service de conteneur à déployer des images pour le référentiel privé.

**Important**  
Lightsail ajoute automatiquement le rôle d'extracteur d'images Amazon ECR à vos référentiels privés Amazon ECR lorsque vous utilisez la console Lightsail pour configurer l'accès. Dans ce cas, il n'est pas nécessaire d'ajouter manuellement le rôle extracteur d'image d'Amazon ECR dans vos référentiels privés à l'aide de la procédure de cette section. Pour plus d'informations, voir [Utiliser la console Lightsail pour gérer l'accès aux référentiels privés](#ecr-private-repo-access-lightsail-console) plus haut dans ce guide.

Vous pouvez ajouter une stratégie à un référentiel privé à l'aide de l' AWS CLI. Pour ce faire, créez un fichier JSON qui contient la stratégie, puis référencez ce fichier avec la commande `set-repository-policy` pour Amazon ECR. Pour plus d’informations, consultez [set-repository-policy](https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html) dans la *Référence des commandes de l’AWS CLI *.

**Note**  
Vous devez l'installer AWS CLI et le configurer pour Amazon ECR avant de poursuivre cette procédure. Pour plus d'informations, veuillez consulter [Configuration avec Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/get-set-up-for-amazon-ecr.html) dans le *Guide de l'utilisateur Amazon ECR*.

1. Ouvrez un éditeur de texte et collez la déclaration de politique suivante dans un nouveau fichier texte.

------
#### [ JSON ]

****  

   ```
   { 
     "Version":"2012-10-17",		 	 	 
     "Statement": [
     {
         "Sid": "AllowLightsailPull-ecr-private-repo-demo",
         "Effect": "Allow",
         "Principal": {
           "AWS": "IamRolePrincipalArn"
         },
         "Action": [
           "ecr:BatchGetImage",
           "ecr:GetDownloadUrlForLayer"
         ]
       }
     ]
   }
   ```

------

   Dans le texte, remplacez-le *IamRolePrincipalArn* par l'ARN principal du rôle IAM d'extraction d'images Amazon ECR de votre service de conteneur que vous avez obtenu plus tôt dans ce guide.

1. Enregistrez le fichier sous le nom `ecr-policy.json` à un emplacement accessible sur votre ordinateur (par exemple, `C:\Temp\ecr-policy.json` sous Windows ou `/tmp/ecr-policy.json` sous macOS ou Linux).

1. Notez l'emplacement du chemin d'accès du fichier `ecr-policy.json` créé. Vous spécifierez cela dans une commande à un stade ultérieur de cette procédure.

1. Ouvrez une invite de commande ou une fenêtre de terminal.

1. Saisissez la commande suivante pour définir la déclaration de politique du référentiel privé auquel vous souhaitez accéder avec votre service de conteneurs.

   ```
   aws ecr set-repository-policy --repository-name RepositoryName --policy-text file://path/to/ecr-policy.json --region AwsRegionCode
   ```

   Dans la commande, remplacez l'exemple de texte suivant par le vôtre :
   + *RepositoryName*— Le nom du dépôt privé pour lequel vous souhaitez ajouter la politique.
   + *path/to/*— Le chemin d'accès au `ecr-policy.json` fichier sur votre ordinateur que vous avez créé précédemment dans ce guide.
   + *AwsRegionCode*— Le Région AWS code du dépôt privé (par exemple,`us-east-1`).

   Exemples :
   + Sous Windows :

     ```
     aws ecr set-repository-policy --repository-name my-private-repo --policy-text file://C:\Temp\ecr-policy.json --region us-east-1
     ```
   + Sous macOS ou Linux :

     ```
     aws ecr set-repository-policy --repository-name my-private-repo --policy-text file:///tmp/ecr-policy.json --region us-east-1
     ```

   Votre service de conteneur peut maintenant accéder à votre référentiel privé et à ses images. Pour utiliser une image de votre référentiel, spécifiez l'URI suivant en tant que valeur **Image** pour votre déploiement de service de conteneurs. Dans l'URI, remplacez l'exemple par le *tag* tag de l'image que vous souhaitez déployer. Pour plus d'informations, veuillez consulter [Création et gestion des déploiements pour vos services de conteneurs](amazon-lightsail-container-services-deployments.md).

   ```
   AwsAccountId.dkr.ecr.AwsRegionCode.amazonaws.com/RepositoryName:ImageTag
   ```

   Dans l'URI, remplacez l'exemple de texte suivant par le vôtre :
   + *AwsAccountId*— Le numéro d'identification de votre AWS compte.
   + *AwsRegionCode*— Le Région AWS code du dépôt privé (par exemple,`us-east-1`).
   + *RepositoryName*— Le nom du référentiel privé à partir duquel déployer une image de conteneur.
   + *ImageTag*— Le tag de l'image du conteneur provenant du référentiel privé à déployer sur votre service de conteneur.

   Exemple :

   ```
   111122223333.dkr.ecr.us-east-1.amazonaws.com/my-private-repo:myappimage
   ```

### Ajouter une politique à un référentiel privé qui possède une déclaration de politique
<a name="ecr-private-repo-add-policy-existing-policy"></a>

Procédez comme suit pour ajouter une stratégie à un référentiel privé Amazon ECR qui a une déclaration de stratégie. La politique que vous ajoutez doit inclure la politique existante et une nouvelle politique contenant l'ARN principal du rôle IAM d'extraction d'images Amazon ECR de votre service de conteneur Lightsail. Cela permet de conserver les autorisations existantes dans votre référentiel privé tout en accordant l'accès à votre service de conteneur pour déployer des images à partir du référentiel privé.

**Important**  
Lightsail ajoute automatiquement le rôle d'extracteur d'images Amazon ECR à vos référentiels privés Amazon ECR lorsque vous utilisez la console Lightsail pour configurer l'accès. Dans ce cas, il n'est pas nécessaire d'ajouter manuellement le rôle extracteur d'image d'Amazon ECR dans vos référentiels privés à l'aide de la procédure de cette section. Pour plus d'informations, voir [Utiliser la console Lightsail pour gérer l'accès aux référentiels privés](#ecr-private-repo-access-lightsail-console) plus haut dans ce guide.

Vous pouvez ajouter une stratégie à un référentiel privé à l'aide de l' AWS CLI. Pour ce faire, créez un fichier JSON contenant la politique existante et la nouvelle politique. Ensuite, référencez ce fichier avec la commande `set-repository-policy` pour Amazon ECR. Pour plus d’informations, consultez [set-repository-policy](https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html) dans la *Référence des commandes de l’AWS CLI *.

**Note**  
Vous devez l'installer AWS CLI et le configurer pour Amazon ECR avant de poursuivre cette procédure. Pour plus d'informations, veuillez consulter [Configuration avec Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/get-set-up-for-amazon-ecr.html) dans le *Guide de l'utilisateur Amazon ECR*.

1. Ouvrez une invite de commande ou une fenêtre de terminal.

1. Saisissez la commande suivante pour obtenir la déclaration de politique d'un référentiel privé spécifique.

   ```
   aws ecr get-repository-policy --repository-name RepositoryName --region AwsRegionCode
   ```

   Dans la commande, remplacez l'exemple de texte suivant par le vôtre :
   + *RepositoryName*— Le nom du référentiel privé pour lequel vous souhaitez configurer l'accès pour un service de conteneur Lightsail.
   + *AwsRegionCode*— Le Région AWS code du dépôt privé (par exemple,`us-east-1`).

   Exemple :

   ```
   aws ecr get-repository-policy --repository-name my-private-repo --region us-east-1
   ```

1. Dans la réponse, copiez la politique existante et passez à l'étape suivante.

   Vous ne devez copier que le contenu du `policyText` (texte de la politique) qui s'affiche entre les guillemets doubles, comme indiqué dans l'exemple suivant.  
![\[Réponse à la get-repository-policy commande pour un dépôt privé ne comportant pas de déclaration de politique\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/ecr-existing-policy-copy-statement.png)

1. Ouvrez un éditeur de texte, et collez la politique existante depuis votre référentiel privé que vous avez copié à l'étape précédente.

   Le résultat doit ressembler à l'exemple suivant :  
![\[Exemple de fichier JSON de déclaration de politique\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/ecr-existing-policy-statement-json.png)

1. Dans le texte que vous avez collé, remplacez `\n` par des sauts de ligne et supprimez le `\` restant.

   Le résultat doit ressembler à l'exemple suivant :  
![\[Exemple de fichier JSON de déclaration de politique modifié\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/ecr-existing-policy-statement-json-edited.png)

1. Collez la déclaration de politique suivante à la fin du fichier texte.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowLightsailPull-ecr-private-repo-demo",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "IamRolePrincipalArn"
               },
               "Action": [
                   "ecr:BatchGetImage",
                   "ecr:GetDownloadUrlForLayer"
               ]
           }
       ]
   }
   ```

------

1. Dans le texte, remplacez-le *IamRolePrincipalArn* par l'ARN principal du rôle IAM d'extraction d'images Amazon ECR de votre service de conteneur que vous avez obtenu plus tôt dans ce guide.

   Le résultat doit ressembler à l'exemple suivant :  
![\[Exemple de fichier JSON de déclaration de politique complète\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/ecr-existing-policy-statement-json-completed.png)

1. Enregistrez le fichier sous le nom `ecr-policy.json` à un emplacement accessible sur votre ordinateur (par exemple, `C:\Temp\ecr-policy.json` sous Windows ou `/tmp/ecr-policy.json` sous macOS ou Linux).

1. Notez l'emplacement du chemin d'accès du fichier `ecr-policy.json`. Vous spécifierez cela dans une commande à un stade ultérieur de cette procédure.

1. Ouvrez une invite de commande ou une fenêtre de terminal.

1. Saisissez la commande suivante pour définir la déclaration de politique du référentiel privé auquel vous souhaitez accéder avec votre service de conteneurs.

   ```
   aws ecr set-repository-policy --repository-name RepositoryName --policy-text file://path/to/ecr-policy.json --region AwsRegionCode
   ```

   Dans la commande, remplacez l'exemple de texte suivant par le vôtre :
   + *RepositoryName*— Le nom du dépôt privé pour lequel vous souhaitez ajouter la politique.
   + *path/to/*— Le chemin d'accès au `ecr-policy.json` fichier sur votre ordinateur que vous avez créé précédemment dans ce guide.
   + *AwsRegionCode*— Le Région AWS code du dépôt privé (par exemple,`us-east-1`).

   Exemples :
   + Sous Windows :

     ```
     aws ecr set-repository-policy --repository-name my-private-repo --policy-text file://C:\Temp\ecr-policy.json --region us-east-1
     ```
   + Sous macOS ou Linux :

     ```
     aws ecr set-repository-policy --repository-name my-private-repo --policy-text file:///tmp/ecr-policy.json --region us-east-1
     ```

   Vous devriez voir une réponse similaire à l'exemple suivant.  
![\[Réponse à la set-repository-policy commande\]](http://docs.aws.amazon.com/fr_fr/lightsail/latest/userguide/images/ecr-set-policy-statement-response.png)

   Si vous exécutez la commande `get-repository-policy` à nouveau, vous devriez voir la nouvelle déclaration de politique supplémentaire dans votre référentiel privé. Votre service de conteneur peut maintenant accéder à votre référentiel privé et à ses images. Pour utiliser une image de votre référentiel, spécifiez l'URI suivant en tant que valeur **Image** pour votre déploiement de service de conteneurs. Dans l'URI, remplacez l'exemple par le *tag* tag de l'image que vous souhaitez déployer. Pour plus d'informations, veuillez consulter [Création et gestion des déploiements pour vos services de conteneurs](amazon-lightsail-container-services-deployments.md).

   ```
   AwsAccountId.dkr.ecr.AwsRegionCode.amazonaws.com/RepositoryName:ImageTag
   ```

   Dans l'URI, remplacez l'exemple de texte suivant par le vôtre :
   + *AwsAccountId*— Le numéro d'identification de votre AWS compte.
   + *AwsRegionCode*— Le Région AWS code du dépôt privé (par exemple,`us-east-1`).
   + *RepositoryName*— Le nom du référentiel privé à partir duquel déployer une image de conteneur.
   + *ImageTag*— Le tag de l'image du conteneur provenant du référentiel privé à déployer sur votre service de conteneur.

   Exemple :

   ```
   111122223333.dkr.ecr.us-east-1.amazonaws.com/my-private-repo:myappimage
   ```