

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.

# Mise à jour manuelle de l'agent de conteneur Amazon ECS (pour les applications non optimisées pour Amazon ECS AMIs)
<a name="manually_update_agent"></a>

L’agent de conteneur Amazon ECS doit parfois être mis à jour afin d’obtenir les correctifs de bogues et les nouvelles fonctions. La mise à jour de l'agent de conteneur Amazon ECS n'interrompt pas les tâches ou les services en cours d'exécution sur l'instance de conteneur.
**Note**  
Les mises à jour de l'agent ne s'appliquent pas aux instances de conteneur Windows. Nous vous recommandons de lancer de nouvelles instances de conteneur pour mettre à jour le version de l'agent dans vos clusters Windows.

1. Connectez-vous à votre instance de conteneur via SSH.

1. Vérifiez si votre agent utilise la variable d'environnement `ECS_DATADIR` pour enregistrer son état.

   ```
   ubuntu:~$ docker inspect ecs-agent | grep ECS_DATADIR
   ```

   Sortie :

   ```
   "ECS_DATADIR=/data",
   ```
**Important**  
Si la commande précédente ne renvoie pas la variable d'environnement `ECS_DATADIR`, vous devez arrêter toutes les tâches en cours d'exécution sur cette instance de conteneur avant de mettre à jour votre agent. Les agents récents avec la variable d'environnement `ECS_DATADIR` enregistrent leur état et sont possibles à mettre à jour sans problèmes tandis que les tâches sont en cours d'exécution.

1. Arrêtez l'agent de conteneur Amazon ECS.

   ```
   ubuntu:~$ docker stop ecs-agent
   ```

1. Supprimez le conteneur de l'agent.

   ```
   ubuntu:~$ docker rm ecs-agent
   ```

1. Vérifiez que le répertoire `/etc/ecs` et le fichier de configuration de l'agent de conteneur Amazon ECS existent à l'emplacement `/etc/ecs/ecs.config`.

   ```
   ubuntu:~$ sudo mkdir -p /etc/ecs && sudo touch /etc/ecs/ecs.config
   ```

1. Modifiez le fichier `/etc/ecs/ecs.config` et vérifiez qu'il contient au moins les déclarations de variable suivantes. Pour que votre instance de conteneur ne s'inscrive pas auprès du cluster par défaut, spécifiez le nom de votre cluster comme valeur pour `ECS_CLUSTER`.

   ```
   ECS_DATADIR=/data
   ECS_ENABLE_TASK_IAM_ROLE=true
   ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST=true
   ECS_LOGFILE=/log/ecs-agent.log
   ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","awslogs"]
   ECS_LOGLEVEL=info
   ECS_CLUSTER=default
   ```

   Pour plus d'informations sur ces options ainsi que d'autres options d'exécution d'agents, consultez la page [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md).
**Note**  
Vous pouvez éventuellement stocker vos variables d'environnement d'agent dans Amazon S3. Elles pourront être téléchargées dans vos instances de conteneur lors du lancement à l'aide des données utilisateur Amazon EC2. Ceci est particulièrement conseillé pour les informations sensibles, telles que les informations d'authentification pour les référentiels privés. Pour plus d’informations, consultez [Stockage de la configuration d’instance de conteneur Amazon ECS dans Amazon S3](ecs-config-s3.md) et [Utilisation d'images autres que des AWS conteneurs dans Amazon ECS](private-auth.md).

1. Extrayez la dernière image de l'agent de conteneur Amazon ECS depuis Amazon Elastic Container Registry Public.

   ```
   ubuntu:~$ docker pull public.ecr.aws/ecs/amazon-ecs-agent:latest
   ```

   Sortie :

   ```
   Pulling repository amazon/amazon-ecs-agent
   a5a56a5e13dc: Download complete
   511136ea3c5a: Download complete
   9950b5d678a1: Download complete
   c48ddcf21b63: Download complete
   Status: Image is up to date for amazon/amazon-ecs-agent:latest
   ```

1. Exécutez l'agent de conteneur Amazon ECS le plus récent sur votre instance de conteneur.
**Note**  
Utilisez les stratégies de redémarrage de Docker ou un gestionnaire de processus (tel que **upstart** ou **systemd**) pour traiter l'agent de conteneur comme un service ou un démon, et vous assurer qu'il est redémarré après avoir été arrêté. L'AMI optimisée pour Amazon ECS utilise le `ecs-init` RPM à cette fin, et vous pouvez consulter le [code source de ce RPM](https://github.com/aws/amazon-ecs-init) sur. GitHub 

   L'exemple suivant de commande d'exécution d'agent est divisé en lignes distinctes pour montrer chaque option. Pour plus d'informations sur ces options ainsi que d'autres options d'exécution d'agents, consultez la page [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md).
**Important**  
Les systèmes d'exploitation sur lesquels cette `--privileged` option est SELinux activée doivent figurer dans votre **docker run** commande. En outre, pour les instances de conteneur SELinux activées, nous vous recommandons d'ajouter l'`:Z`option aux montages de `/data` volume `/log` et. Cependant, les montages hôtes de ces volumes doivent exister avant d'exécuter la commande. Dans le cas contraire, vous recevrez une erreur `no such file or directory`. Procédez comme suit si vous rencontrez des difficultés pour exécuter l'agent Amazon ECS sur une instance de conteneur SELinux activée :  
Créez les points de montage des volumes hôtes sur votre instance de conteneur.  

     ```
     ubuntu:~$ sudo mkdir -p /var/log/ecs /var/lib/ecs/data
     ```
Ajoutez l'option `--privileged` à la commande **docker run** ci-dessous.
Ajoutez l'option `:Z` aux montages de volume de conteneur `/log` et `/data` (par exemple, `--volume=/var/log/ecs/:/log:Z`) dans la commande **docker run** ci-dessous.

   ```
   ubuntu:~$ sudo docker run --name ecs-agent \
   --detach=true \
   --restart=on-failure:10 \
   --volume=/var/run:/var/run \
   --volume=/var/log/ecs/:/log \
   --volume=/var/lib/ecs/data:/data \
   --volume=/etc/ecs:/etc/ecs \
   --volume=/etc/ecs:/etc/ecs/pki \
   --net=host \
   --env-file=/etc/ecs/ecs.config \
   amazon/amazon-ecs-agent:latest
   ```
**Note**  
Si vous recevez un message `Error response from daemon: Cannot start container`, vous pouvez supprimer le conteneur ayant échoué à l'aide de la commande **sudo docker rm ecs-agent**, puis réessayer d'exécuter l'agent. 