

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Amazon-ECS-EC2-Container-Instances
<a name="ecs-agent-versions"></a>

Der Amazon-ECS-Agent ist ein Prozess, der auf jeder Container-Instance ausgeführt wird, die in Ihrem Cluster registriert ist. Dieser Prozess erleichtert die Kommunikation zwischen Ihren Container-Instances und Amazon ECS.

**Anmerkung**  
Auf Linux-Container-Instances mountet der Agent-Container hochrangige Verzeichnisse wie `/lib`, `/lib64` und `/proc`. Dies ist für ECS-Features und -Funktionen wie Amazon-EBS-Volumes, `awsvpc`-Netzwerkmodus, Amazon ECS Service Connect und FireLens für Amazon ECS erforderlich.

Jede Amazon-ECS-Container-Agenten-Version unterstützt unterschiedliche Features und bietet Fehlerbehebungen aus früheren Versionen. Wir empfehlen grundsätzlich, die neueste Version des Amazon-ECS-Container-Agenten zu verwenden, wenn dies möglich ist. Die neueste Version für Ihren Container-Agenten finden Sie unter [Überprüfen des Amazon-ECS-Container-Agenten](ecs-agent-update.md).

Der Amazon-ECS-Container-Agent enthält das `amazon-ecs-pause`-Image. Amazon ECS verwendet dieses Image für Aufgaben, die den `awsvpc`-Netzwerkmodus verwenden.

Informationen darüber, welche Funktionen und Verbesserungen in den einzelnen Agent-Versionen enthalten sind, finden Sie unter [https://github.com/aws/amazon-ecs-agent/releases](https://github.com/aws/amazon-ecs-agent/releases).

**Wichtig**  
Die Mindestversion von Docker für zuverlässige Metriken ist die Docker-Version `v20.10.13` und neuer, die in Amazon-ECS-optimiertem AMI `20220607` und neuer enthalten ist.  
Die Amazon-ECS-Agent-Versionen `1.20.0` und neuer haben die Unterstützung für Docker-Versionen älter als `18.01.0` eingestellt.

## Lebenszyklus
<a name="container-lifecycle"></a>

Wenn der Amazon-ECS-Container-Agent eine Amazon-EC2-Instance an Ihrem Cluster registriert, meldet die Amazon-EC2-Instance den Status als `ACTIVE` und den Agent-Verbindungsstatus als `TRUE`. Die Container-Instance kann Anfragen zur Ausführung von Aufgaben akzeptieren.

Wenn Sie eine Container-Instance anhalten (nicht beenden), lautet ihr Status weiterhin `ACTIVE`, der Agent-Verbindungsstatus wird jedoch innerhalb von wenigen Minuten in `FALSE` geändert. Alle Aufgaben, die gerade auf der Container-Instance ausgeführt wurden, werden gestoppt. Wenn Sie die Container-Instance erneut starten, stellt der Container-Agent erneut eine Verbindung zum Amazon-ECS-Service her und Sie können wieder Aufgaben auf der Instance ausführen.

Wenn Sie den Status einer Container-Instance in `DRAINING` ändern, werden keine neuen Aufgaben in die Container-Instance gestellt. Wenn möglich, werden alle auf der Container-Instance ausgeführten Serviceaufgaben entfernt, damit Sie Systemaktualisierungen vornehmen können. Weitere Informationen finden Sie unter [Entlastung von Amazon-ECS-Container-Instances](container-instance-draining.md).

Wenn Sie die Registrierung einer Container-Instance aufheben oder eine Container-Instance beenden, wird ihr Status umgehend in `INACTIVE` geändert und die Container-Instance ist nicht mehr in der Auflistung Ihrer Container-Instances aufgeführt. Allerdings ist nach der Beendigung noch für eine Stunde eine Beschreibung der Container-Instance möglich. Nach einer Stunde ist die Instance-Beschreibung nicht mehr verfügbar.

Sie können die Instances manuell ausgleichen oder einen Auto-Scaling-Gruppenlebenszyklus-Hook erstellen, um den Instance-Status auf `DRAINING` zu setzen. Weitere Informationen zu Auto-Scaling-Lebenszyklus-Hooks finden Sie unter [Lebenszyklus-Hooks für Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html).

## Unterstützung für Docker
<a name="docker-support"></a>

Amazon ECS unterstützt die letzten beiden Hauptversionen von Docker, die unter Amazon Linux veröffentlicht wurden. Derzeit umfasst dies Docker 20.10.x und Docker 25.x.

Die mindestens erforderliche Docker-Version für Amazon ECS finden Sie in der [Amazon ECS-Agentenspezifikationsdatei](https://github.com/aws/amazon-ecs-agent/blob/dev/packaging/amazon-linux-ami-integrated/ecs-agent.spec#L53) unter GitHub.

Wenn Sie das Amazon-ECS-optimierte AMI verwenden, ist Docker für die Verwendung mit dem Amazon-ECS-Container-Agenten vorinstalliert und konfiguriert. Das AMI beinhaltet eine Docker-Version, die von Amazon ECS getestet und unterstützt wird.

**Anmerkung**  
Amazon ECS unterstützt zwar mehrere Docker-Versionen, wir empfehlen jedoch, die Docker-Version zu verwenden, die mit dem Amazon-ECS-optimierten AMI geliefert wird, um die beste Kompatibilität und Unterstützung zu gewährleisten.

## Amazon-ECS-optimiertes AMI
<a name="ecs-optimized-ami"></a>

Weitere Informationen zum Amazon ECS-optimierten AMI finden Sie unter [Amazon ECS-Optimized](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) Linux. AMIs

## Zusätzliche Informationen
<a name="additional-information"></a>

Auf den folgenden Seiten finden Sie weitere Informationen zu den Änderungen:
+ [Amazon ECS Agent-Änderungsprotokoll aktiviert](https://github.com/aws/amazon-ecs-agent/blob/master/CHANGELOG.md) GitHub
+ [Versionshinweise zu Amazon Linux 2](https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html).
+ [Versionshinweise für die Docker-Engine](https://docs.docker.com/engine/release-notes/27/) in der Docker-Dokumentation
+ [NVIDIA-Treiberdokumentation](https://docs.nvidia.com/datacenter/tesla/index.html) in der NVIDIA-Dokumentation

# Konfiguration des Amazon-ECS-Container-Agenten
<a name="ecs-agent-config"></a>

**Gilt für**: EC2-Instances

Der Amazon-ECS-Container-Agent unterstützt eine Reihe von Konfigurationsoptionen, von denen die meisten durch Umgebungsvariablen eingerichtet werden. 

Wenn Ihre Container-Instance mit einer Linux-Variante des Amazon-ECS-optimierten AMI gestartet wurde, können Sie diese Umgebungsvariablen in der Datei `/etc/ecs/ecs.config` setzen und dann den Agenten neu starten. Sie können diese Konfigurationsvariablen auch beim Starten mit Amazon EC2-Benutzerdaten in ihre Container-Instances schreiben. Weitere Informationen finden Sie unter [Bootstrapping von Amazon-ECS-Linux-Container-Instances zur Weitergabe von Daten](bootstrap_container_instance.md).

Wenn Ihre Container-Instance mit einer Windows-Variante des Amazon ECS-optimierten AMI gestartet wurde, können Sie diese Umgebungsvariablen mit dem PowerShell SetEnvironmentVariable Befehl festlegen und dann den Agenten neu starten. Weitere Informationen finden Sie unter [Ausführen von Befehlen beim Start einer EC2-Instance mit Benutzerdateneingabe](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) im *Amazon-EC2-Benutzerhandbuch* und [Bootstrapping von Windows-Container-Instances von Amazon ECS zur Weitergabe von Daten](bootstrap_windows_container_instance.md).

Wenn Sie den Amazon ECS-Container-Agenten manuell starten (für nicht Amazon ECS-optimierte Systeme AMIs), können Sie diese Umgebungsvariablen in dem **docker run** Befehl verwenden, mit dem Sie den Agenten starten. Verwenden Sie diese Variablen mit der Syntax `--env=VARIABLE_NAME=VARIABLE_VALUE`. Bei sensiblen Informationen, beispielsweise Authentifizierungs-Anmeldeinformationen für private Repositorys, sollten Sie die Agent-Umgebungsvariablen in einer Datei speichern und sie alle auf einmal mit der Option `--env-file path_to_env_file` weitergeben. Sie können die folgenden Befehle verwenden, um die Variablen hinzuzufügen.

```
sudo systemctl stop ecs
sudo vi /etc/ecs/ecs.config 
# And add the environment variables with VARIABLE_NAME=VARIABLE_VALUE format.
sudo systemctl start ecs
```

## Führen Sie den Amazon-ECS-Agenten mit dem Host-PID-Namespace aus
<a name="ecs-agent-pid-namespace"></a>

Standardmäßig wird der Amazon-ECS-Agent mit seinem eigenen PID-Namespace ausgeführt. In den folgenden Konfigurationen können Sie den Amazon-ECS-Agenten so konfigurieren, dass er mit dem Host-PID-Namespace ausgeführt wird:
+ SELinux Der Erzwingungsmodus ist aktiviert.
+ Die SELinux Sicherheitsrichtlinie von Docker ist auf true gesetzt.

Sie können dieses Verhalten konfigurieren, indem Sie die Umgebungsvariable `ECS_AGENT_PID_NAMESPACE_HOST` in Ihrer `/etc/ecs/ecs.config`-Datei auf `true` setzen. Wenn diese Variable aktiviert ist, `ecs-init` wird der Amazon ECS-Agent-Container mit dem PID-Namespace (`--pid=host`) des Hosts gestartet, sodass sich der Agent in Umgebungen, die die Option SELinux -enforcing, ordnungsgemäß booten kann. Dieses Feature ist in Amazon-ECS-Agent-Version `1.94.0` und höher verfügbar.

Fügen Sie die folgende Zeile zu Ihrer `/etc/ecs/ecs.config`-Datei hinzu, um dieses Feature zu aktivieren:

```
ECS_AGENT_PID_NAMESPACE_HOST=true
```

Nachdem Sie diese Änderung vorgenommen haben, starten Sie den Amazon-ECS-Agenten neu, damit die Änderung wirksam wird:

```
sudo systemctl restart ecs
```

Die folgenden Funktionen funktionieren nicht, wenn der SELinux Erzwingungsmodus aktiviert ist und die Docker-Sicherheitsrichtlinie auf true gesetzt ist, auch wenn sie aktiviert ist. `ECS_AGENT_PID_NAMESPACE_HOST=true`
+ Amazon ECS Exec
+ Amazon-EBS-Aufgabe anhängen
+ Service Connect
+ FireLens für Amazon ECS

## Verfügbare Parameter
<a name="ecs-agent-availparam"></a>

Informationen zu den verfügbaren Amazon ECS-Container-Agent-Konfigurationsparametern finden Sie unter [Amazon ECS Container Agent](https://github.com/aws/amazon-ecs-agent/blob/master/README.md) on GitHub.

# Speichern der Konfiguration von Amazon-ECS-Container-Instances in Amazon S3
<a name="ecs-config-s3"></a>

Die Konfiguration des Amazon-ECS-Container-Agenten wird mit der Umgebungsvariable kontrolliert. Die Linux-Varianten des Amazon-ECS-optimierten AMI suchen nach diesen Variablen in `/etc/ecs/ecs.config`, wenn der Containeragent startet, und konfigurieren den Agenten entsprechend. Unverfängliche Umgebungsvariablen, beispielsweise `ECS_CLUSTER`, können beim Starten durch Amazon-EC2-Benutzerdaten an die Container-Instance übergeben und folgenlos in diese Datei geschrieben werden. Andere vertrauliche Informationen, wie Ihre AWS Anmeldeinformationen oder die `ECS_ENGINE_AUTH_DATA` Variable, sollten jedoch niemals in Form von Benutzerdaten an eine Instance weitergegeben oder so geschrieben werden, dass sie in einer `.bash_history` Datei angezeigt werden können. `/etc/ecs/ecs.config`

Das Speichern von Konfigurationsinformationen in einem privaten Amazon S3-Bucket und das Erteilen der schreibgeschützten Zugriffsberechtigung Ihrer IAM-Rolle der Container-Instance ist eine sichere und bequeme Art, die Konfiguration der Container-Instance zur Startzeit zu ermöglichen. Sie können eine Kopie Ihrer `ecs.config`-Datei in einem privaten Bucket speichern. Sie können dann Amazon EC2 EC2-Benutzerdaten verwenden, um die Instance zu installieren AWS CLI und Ihre Konfigurationsinformationen zu kopieren, `/etc/ecs/ecs.config` wenn die Instance gestartet wird.

**So speichern Sie eine `ecs.config`-Datei in Amazon S3**

1. Sie müssen der Container-Instance die Rechte role (**ecsInstanceRole**) gewähren, um nur Lesezugriff auf Amazon S3 zu haben. Sie können dies tun, indem Sie der Rolle **AmazonS3 ReadOnlyAccess** zuweisen. `ecsInstanceRole` Informationen zum Anhängen einer Richtlinie an eine Rolle finden Sie unter [Aktualisieren der Berechtigungen für eine Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html) im *Benutzerhandbuch für AWS Identity and Access Management *.

1. Erstellen Sie eine `ecs.config`-Datei mit gültigen Amazon-ECS-Agenten-Konfigurationsvariablen im folgenden Format. Dieses Beispiel konfiguriert private Registry-Authentifizierung. Weitere Informationen finden Sie unter [Verwenden von AWS Nicht-Container-Images in Amazon ECS](private-auth.md).

   ```
   ECS_ENGINE_AUTH_TYPE=dockercfg
   ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
   ```
**Anmerkung**  
Eine vollständige Liste der verfügbaren Amazon ECS-Agenten-Konfigurationsvariablen finden Sie unter [Amazon ECS Container Agent](https://github.com/aws/amazon-ecs-agent/blob/master/README.md) on GitHub.

1. Um Ihre Konfigurationsdatei zu speichern, erstellen Sie in Amazon S3 einen privaten Bucket. Weitere Informationen erhalten Sie unter [Erstellen eines Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) im *Benutzerhandbuch für Amazon Simple Storage Service*. 

1. Laden Sie die Datei `ecs.config` in Ihren S3-Bucket hoch. Weitere Informationen finden Sie unter [Hochladen von Objekten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) im *Benutzerhandbuch von Amazon Simple Storage Service*.

**So laden Sie eine `ecs.config`-Datei beim Start von Amazon S3**

1. Führen Sie in diesem Bereich die zuvor genannten Verfahren aus, um schreibgeschützten Amazon S3-Zugriff auf Ihre Container-Instances zu ermöglichen und eine `ecs.config`-Datei in einem privaten S3-Bucket zu speichern.

1. Starten Sie neue Container-Instances und verwenden Sie das folgende Beispielskript in den EC2-Benutzerdaten. Das Skript installiert die AWS CLI und kopiert Ihre Konfigurationsdatei in`/etc/ecs/ecs.config`. Weitere Informationen finden Sie unter [Starten einer Amazon ECS Linux-Container-Instance](launch_container_instance.md).

   ```
   #!/bin/bash
   yum install -y aws-cli
   aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config
   ```

# Installieren des Amazon-ECS-Container-Agenten
<a name="ecs-agent-install"></a>

Wenn Sie eine Amazon-EC2-Instance in Ihrem Amazon-ECS-Cluster registrieren möchten und diese Instance kein AMI verwendet, das auf dem Amazon-ECS-optimierten AMI basiert, können Sie den Amazon-ECS-Container-Agenten manuell mit dem folgenden Verfahren installieren. Sie können dazu den Agent entweder von einem der regionalen Amazon-S3-Buckets oder vom öffentlichen Amazon Elastic Container Registry herunterladen. Wenn Sie den Agenten aus einem der regionalen Amazon-S3-Buckets herunterladen, können Sie optional die Gültigkeit der Container-Agentendatei mithilfe der PGP-Signatur prüfen.

**Anmerkung**  
Die `systemd`-Einheiten für die Amazon ECS- und Docker-Services enthalten die Anweisung, auf die Beendigung von `cloud-init` zu warten, bevor beide Services gestartet werden. Der `cloud-init`-Prozess gilt erst als abgeschlossen, wenn die Ausführung der Amazon EC2-Benutzerdaten beendet wurde. Daher kann das Starten von Amazon-ECS oder Docker über Amazon-EC2-Benutzerdaten zu einer Systemblockade führen. Um den Container-Agent mit Amazon EC2-Benutzerdaten zu starten, können Sie `systemctl enable --now --no-block ecs.service` verwenden.

## So installieren Sie den Amazon-ECS-Container-Agent auf einer Nicht–Amazon Linux-EC2-Instance
<a name="ecs-agent-install-nonamazonlinux"></a>

Um den Amazon-ECS-Container-Agent auf einer Amazon-EC2-Instance zu installieren, können Sie den Agent von einem der regionalen Amazon-S3-Buckets herunterladen und installieren.

**Anmerkung**  
Wenn Sie ein Nicht-Amazon-Linux-AMI verwenden, erfordert Ihre Amazon-EC2-Instance `cgroupfs`-Support für die `cgroup`-Treiber, damit der Amazon-ECS-Agent Ressourcenlimits auf Aufgabenebene unterstützt. Weitere Informationen finden Sie unter [Amazon ECS-Agent unter GitHub](https://github.com/aws/amazon-ecs-agent).

Die neuesten Dateien des Container-Agents von Amazon ECS nach Region für jede Systemarchitektur sind unten als Referenz aufgeführt.


| Region | Name der Region | Amazon-ECS-Init-Deb-Dateien | Amazon-ECS-Init-rpm-Dateien | 
| --- | --- | --- | --- | 
| us-east-2 | USA Ost (Ohio) |  [Amazon ECS init amd64](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-east-1 | USA Ost (Nord-Virginia) |  [Amazon ECS init amd64](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-west-1 | USA West (Nordkalifornien) |  [Amazon ECS init amd64](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-west-2 | USA West (Oregon) |  [Amazon ECS init amd64](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-east-1 | Asien-Pazifik (Hongkong) |  [Amazon ECS init amd64](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-northeast-1 | Asien-Pazifik (Tokio) |  [Amazon ECS init amd64](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-northeast-2 | Asien-Pazifik (Seoul) |  [Amazon ECS init amd64](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-south-1 | Asien-Pazifik (Mumbai) |  [Amazon ECS init amd64](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-southeast-1 | Asien-Pazifik (Singapur) |  [Amazon ECS init amd64](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-southeast-2 | Asien-Pazifik (Sydney) |  [Amazon ECS init amd64](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ca-central-1 | Kanada (Zentral) |  [Amazon ECS init amd64](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| eu-central-1 | Europa (Frankfurt) |  [Amazon ECS init amd64](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| eu-west-1 | Europa (Irland) |  [Amazon ECS init amd64](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| eu-west-2 | Europa (London) |  [Amazon ECS init amd64](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| eu-west-3 | Europa (Paris) |  [Amazon ECS init amd64](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| sa-east-1 | Südamerika (São Paulo) |  [Amazon ECS init amd64](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.x86_64.rpm) [Amazon ECS init aarch64](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-gov-east-1 | AWS GovCloud (US-Ost) |  [Amazon ECS init amd64](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-gov-west-1 | AWS GovCloud (US-West) |  [Amazon ECS init amd64](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 

**So installieren Sie den Amazon-ECS-Container-Agent auf einer Amazon-EC2-Instance mit einem Nicht-Amazon Linux-AMI**

1. Starten Sie eine Amazon-EC2-Instance mit einer IAM-Rolle, die den Zugriff auf Amazon ECS erlaubt. Weitere Informationen finden Sie unter [IAM-Rolle für Amazon-ECS-Container-Instance](instance_IAM_role.md).

1. Verbinden Sie sich mit der Instance.

1. Installieren Sie die neueste Docker-Version auf Ihrer Instance.

1. Prüfen Sie Ihre Docker-Version, um sicherzustellen, dass Ihr System den Anforderungen der Mindestversion entspricht. Weitere Informationen zur Docker-Unterstützung finden Sie unter [Amazon-ECS-EC2-Container-Instances](ecs-agent-versions.md).

   ```
   docker --version
   ```

1. Laden Sie die entsprechende Amazon-ECS-Agent-Datei für Ihr Betriebssystem und Ihre Systemarchitektur herunter und installieren Sie sie.

   Für `deb`-Architekturen:

   ```
   ubuntu:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.amd64.deb
   ubuntu:~$ sudo dpkg -i amazon-ecs-init-latest.amd64.deb
   ```

   Für `rpm`-Architekturen:

   ```
   fedora:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.x86_64.rpm
   fedora:~$ sudo yum localinstall -y amazon-ecs-init-latest.x86_64.rpm
   ```

1. Bearbeiten Sie die `/lib/systemd/system/ecs.service`-Datei und fügen Sie am Ende des `[Unit]`-Abschnitts die folgende Zeile hinzu.

   ```
   After=cloud-final.service
   ```

1. (Optional) Um die Instance bei einem anderen Cluster als dem `default`-Cluster anzumelden, bearbeiten Sie die `/etc/ecs/ecs.config`-Datei und fügen Sie den folgenden Inhalt hinzu. Das folgende Beispiel gibt den `MyCluster`-Cluster an.

   ```
   ECS_CLUSTER=MyCluster
   ```

   Weitere Informationen zu diesen und anderen Agenten-Laufzeitoptionen erhalten Sie unter[Konfiguration des Amazon-ECS-Container-Agenten](ecs-agent-config.md). 
**Anmerkung**  
Sie können Ihre Agenten-Umgebungsvariablen optional in Amazon S3 speichern (diese können in Ihren Container-Instances zum Startzeitpunkt mithilfe von Amazon EC2-Benutzerdaten heruntergeladen werden). Dies empfiehlt sich für sensible Daten, wie beispielsweise Authentifizierungs-Anmeldeinformationen für private Repositorys. Weitere Informationen erhalten Sie unter [Speichern der Konfiguration von Amazon-ECS-Container-Instances in Amazon S3](ecs-config-s3.md) und [Verwenden von AWS Nicht-Container-Images in Amazon ECS](private-auth.md).

1. Starten Sie den Service `ecs`.

   ```
   ubuntu:~$ sudo systemctl start ecs
   ```

## Ausführen des Amazon-ECS-Agenten mit dem Host-Netzwerkmodus
<a name="container_agent_host"></a>

Beim Ausführen des Amazon-ECS-Container-Agenten erstellt `ecs-init` den Container-Agent-Container mit dem Netzwerkmodus `host`. Dies ist der einzige unterstützte Netzwerkmodus für den Container-Agent-Container. 

Dies ermöglicht Ihnen, den Zugriff auf den [Amazon-EC2-Instance-Metadaten-Service-Endpunkt](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) (`http://169.254.169.254`) für die vom Container-Agenten gestarteten Container zu blockieren. Auf diese Weise wird sichergestellt, dass Container vom Container-Instance-Profil aus keinen Zugriff auf Anmeldeinformationen der IAM-Rolle haben, und erzwungen, dass die Aufgabe nur die Anmeldeinformationen der IAM-Aufgabenrolle verwendet. Weitere Informationen finden Sie unter [Aufgaben-IAM-Rolle für Amazon ECS](task-iam-roles.md).

Dies sorgt auch dafür, dass der Container-Agent nicht um Verbindungen und Netzwerkdatenverkehr auf der `docker0`-Brücke konkurrieren muss.

## Protokoll-Konfigurationsparameter für den Amazon-ECS-Container-Agenten
<a name="agent-logs"></a>

Der Amazon-ECS-Container-Agent speichert Protokolle auf Ihren Container-Instances.

Bei Container-Agent-Version 1.36.0 und höher befinden sich die Protokolle standardmäßig unter `/var/log/ecs/ecs-agent.log` auf Linux-Instances und unter `C:\ProgramData\Amazon\ECS\log\ecs-agent.log` auf Windows-Instances.

Bei Container-Agent-Version 1.35.0 und früher befinden sich die Protokolle standardmäßig unter `/var/log/ecs/ecs-agent.log.timestamp` auf Linux-Instances und unter `C:\ProgramData\Amazon\ECS\log\ecs-agent.log.timestamp` auf Windows-Instances.

Standardmäßig werden die Agent-Protokolle stündlich rotiert, wobei maximal 24 Protokolle gespeichert werden.

Im Folgenden finden Sie die Konfigurationsvariablen des Container-Agenten, die verwendet werden können, um das standardmäßige Agenten-Protokollierungsverhalten zu ändern. Detaillierte Informationen zu allen verfügbaren Konfigurationsparametern finden Sie unter [Konfiguration des Amazon-ECS-Container-Agenten](ecs-agent-config.md) oder in der [README-Datei für Amazon ECS Agent](https://github.com/aws/amazon-ecs-agent/blob/master/README.md) unter GitHub.

Für Container-Agent Version 1.36.0 und höher folgt eine Beispielprotokolldatei für die Verwendung des `logfmt`-Formats.

```
level=info time=2019-12-12T23:43:29Z msg="Loading configuration" module=agent.go
level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-agent:latest" module=parse.go
level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-pause:0.1.0" module=parse.go
level=info time=2019-12-12T23:43:29Z msg="Amazon ECS agent Version: 1.36.0, Commit: ca640387" module=agent.go
level=info time=2019-12-12T23:43:29Z msg="Creating root ecs cgroup: /ecs" module=init_linux.go
level=info time=2019-12-12T23:43:29Z msg="Creating cgroup /ecs" module=cgroup_controller_linux.go
level=info time=2019-12-12T23:43:29Z msg="Loading state!" module=statemanager.go
level=info time=2019-12-12T23:43:29Z msg="Event stream ContainerChange start listening..." module=eventstream.go
level=info time=2019-12-12T23:43:29Z msg="Restored cluster 'auto-robc'" module=agent.go
level=info time=2019-12-12T23:43:29Z msg="Restored from checkpoint file. I am running as 'arn:aws:ecs:us-west-2:0123456789:container-instance/auto-robc/3330a8a91d15464ea30662d5840164cd' in cluster 'auto-robc'" module=agent.go
```

Im Folgenden finden Sie eine Beispielprotokolldatei für die Verwendung des JSON-Formats.

```
{"time": "2019-11-07T22:52:02Z", "level": "info", "msg": "Starting Amazon Elastic Container Service Agent", "module": "engine.go"}
```

# Konfiguration von Amazon-ECS-Container-Instances für private Docker-Images
<a name="private-auth-container-instances"></a>

Der Amazon-ECS-Container-Agent kann sich unter Verwendung der Standardauthentifizierung bei privaten Registrys authentifizieren. Wenn Sie die Authentifizierung bei privaten Registrierungen aktivieren, können Sie private Docker-Images in Ihren Aufgabendefinitionen verwenden. Dieses Feature wird nur von Aufgaben unterstützt, die EC2 verwenden.

Eine andere Methode zur Aktivierung der Authentifizierung in privaten Registern besteht AWS Secrets Manager darin, Ihre Anmeldedaten für die private Registrierung sicher zu speichern und sie dann in Ihrer Container-Definition zu referenzieren. Auf diese Weise können Ihre Aufgaben Images aus privaten Repositorys verwenden. Diese Methode unterstützt Aufgaben, die entweder EC2 oder Fargate verwenden. Weitere Informationen finden Sie unter [Verwenden von AWS Nicht-Container-Images in Amazon ECS](private-auth.md).

Der Amazon-ECS-Container-Agent sucht nach zwei Umgebungsvariablen, wenn er gestartet wird:
+ `ECS_ENGINE_AUTH_TYPE` gibt die Art der gesendeten Authentifizierungsdaten an.
+ `ECS_ENGINE_AUTH_DATA` enthält die tatsächlichen Anmeldeinformationen für die Authentifizierung.

Linux-Varianten des für Amazon ECS optimierten AMI scannen die `/etc/ecs/ecs.config` Datei beim Start der Container-Instance und bei jedem Start des Service (mit dem **sudo start ecs** Befehl) nach diesen Variablen. AMIs die nicht für Amazon ECS optimiert sind, sollten diese Umgebungsvariablen in einer Datei speichern und sie zusammen mit der `--env-file path_to_env_file` Option an den **docker run** Befehl übergeben, der den Container-Agenten startet.

**Wichtig**  
Wir raten davon ab, diese Umgebungsvariablen für die Authentifizierung beim Start der Instance mit Amazon EC2-Benutzerdaten einzufügen oder sie mit der Option `--env` an den Befehl **docker run** zu übergeben. Diese Methoden eigenen sich nicht für vertrauliche Daten wie z. B. Anmeldeinformationen für die Authentifizierung. Anweisungen dazu, wie Sie die Anmeldeinformationen für die Authentifizierung Ihrer Container-Instance sicher hinzufügen, finden Sie unter [Speichern der Konfiguration von Amazon-ECS-Container-Instances in Amazon S3](ecs-config-s3.md).

## Authentifizierungsformate
<a name="docker-auth-formats"></a>

Es gibt zwei Formate der Authentifizierung bei privaten Registrierungen: `dockercfg` und `docker`.

**dockercfg-Authentifizierungsformat**  
Das Format `dockercfg` verwendet die in der Konfigurationsdatei gespeicherten Authentifizierungsinformationen. Diese Konfigurationsdatei wird erstellt, wenn Sie den Befehl **docker login** ausführen. Sie können diese Datei durch die Ausführung von **docker login** auf Ihrem lokalen System erstellen, wobei Sie den registrierten Benutzernamen, das Passwort und die E-Mail-Adresse eingeben. Sie können sich auch bei einer Container-Instance anmelden und den Befehl dort ausführen. Je nachdem, welche Docker-Version Sie verwenden, wird diese Datei entweder als `~/.dockercfg` oder `~/.docker/config.json` gespeichert.

```
cat ~/.docker/config.json
```

Ausgabe:

```
{
  "auths": {
    "https://index.docker.io/v1/": {
      "auth": "zq212MzEXAMPLE7o6T25Dk0i"
    }
  }
}
```

**Wichtig**  
Bei neueren Docker-Versionen wird, wie oben zu sehen, eine Konfigurationsdatei mit einem äußeren `auths`-Objekt erstellt. Der Amazon-ECS-Agent unterstützt nur `dockercfg`-Authentifizierungsdaten im folgenden Format, ohne das `auths`-Objekt. Wenn das Dienstprogramm **jq** installiert ist, können Sie diese Daten mit dem folgenden Befehl extrahieren: **cat \$1/.docker/config.json \$1 jq .auths**.

```
cat ~/.docker/config.json | jq .auths
```

Ausgabe:

```
{
  "https://index.docker.io/v1/": {
    "auth": "zq212MzEXAMPLE7o6T25Dk0i",
    "email": "email@example.com"
  }
}
```

Im obigen Beispiel sollte die folgende Umgebungsvariable der Umgebungsvariablendatei (`/etc/ecs/ecs.config` für das Amazon-ECS-optimierte AMI), die der Amazon-ECS-Container-Agent während der Laufzeit lädt, hinzugefügt werden. Wenn Sie das Amazon-ECS-optimierte AMI nicht verwenden und den Agenten manuell mit dem Befehl **docker run** starten, müssen Sie die Umgebungsvariablendatei beim Starten des Agenten mit der Option `--env-file path_to_env_file` festlegen.

```
ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
```

Sie können mehrere private Registrierungen mit der folgenden Syntax konfigurieren:

```
ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA={"repo.example-01.com":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example-01.com"},"repo.example-02.com":{"auth":"fQ172MzEXAMPLEoF7225DU0j","email":"email@example-02.com"}}
```

**docker-Authentifizierungsformat**  
Das `docker`-Format verwendet eine JSON-Darstellung des Registrierungsservers, auf dem sich der Agent authentifizieren soll. Außerdem enthält es die Authentifizierungsparameter, die für diese Registrierung benötigt werden (z. B. Benutzername, Passwort und E-Mail-Adresse für dieses Konto). Für ein Docker Hub-Konto sieht die JSON-Darstellung wie folgt aus:

```
{
  "https://index.docker.io/v1/": {
    "username": "my_name",
    "password": "my_password",
    "email": "email@example.com"
  }
}
```

In diesem Beispiel sollte die folgende Umgebungsvariable der Umgebungsvariablendatei (`/etc/ecs/ecs.config` für das Amazon-ECS-optimierte AMI), die der Amazon-ECS-Container-Agent während der Laufzeit lädt, hinzugefügt werden. Wenn Sie das Amazon-ECS-optimierte AMI nicht verwenden und den Agenten manuell mit dem Befehl **docker run** starten, müssen Sie die Umgebungsvariablendatei beim Starten des Agenten mit der Option `--env-file path_to_env_file` festlegen.

```
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}
```

Sie können mehrere private Registrierungen mit der folgenden Syntax konfigurieren:

```
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA={"repo.example-01.com":{"username":"my_name","password":"my_password","email":"email@example-01.com"},"repo.example-02.com":{"username":"another_name","password":"another_password","email":"email@example-02.com"}}
```

## Verfahren
<a name="enabling-private-registry"></a>

Gehen Sie wie folgt vor, um private Registrierungen für Ihre Container-Instances zu aktivieren.

**So aktivieren Sie private Registrierungen im Amazon-ECS-optimierten AMI**

1. Melden Sie sich mit SSH an Ihrer Container-Instance an.

1. Öffnen Sie die Datei `/etc/ecs/ecs.config` und fügen Sie die Werte `ECS_ENGINE_AUTH_TYPE` und `ECS_ENGINE_AUTH_DATA` für Ihre Registrierung und Ihr Konto hinzu:

   ```
   sudo vi /etc/ecs/ecs.config
   ```

   Dieses Beispiel authentifiziert ein Docker Hub-Benutzerkonto:

   ```
   ECS_ENGINE_AUTH_TYPE=docker
   ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}
   ```

1. Überprüfen Sie, ob ihr Agent die Umgebungsvariable `ECS_DATADIR` nutzt, um seinen Status zu speichern:

   ```
   docker inspect ecs-agent | grep ECS_DATADIR
   ```

   Ausgabe:

   ```
   "ECS_DATADIR=/data",
   ```
**Wichtig**  
Wenn der vorherige Befehl die Umgebungsvariable `ECS_DATADIR` nicht zurücksendet, müssen Sie sämtliche Aufgaben, die auf dieser Container-Instance ausgeführt werden, abbrechen, bevor Sie Ihren Agenten stoppen. Neuere Agenten mit der Umgebungsvariable `ECS_DATADIR` speichern ihren Status und Sie können sie stoppen und starten, während Aufgaben problemlos ausgeführt werden. Weitere Informationen finden Sie unter [Überprüfen des Amazon-ECS-Container-Agenten](ecs-agent-update.md).

1. Stoppen Sie den Service `ecs`:

   ```
   sudo stop ecs
   ```

   Ausgabe:

   ```
   ecs stop/waiting
   ```

1. Den Service `ecs` neu starten.
   + Für das Amazon-ECS-optimierte Amazon Linux 2-AMI:

     ```
     sudo systemctl restart ecs
     ```
   + Für das Amazon-ECS-optimierte Amazon Linux AMI:

     ```
     sudo stop ecs && sudo start ecs
     ```

1. (Optional) Durch Abfragen der Agenten-Introspektions-API-Operation können Sie überprüfen, ob der Agent ausgeführt wird und Sie können Informationen über Ihre neue Container-Instance einholen. Weitere Informationen finden Sie unter [Amazon-ECS-Container-Introspektion](ecs-agent-introspection.md).

   ```
   curl http://localhost:51678/v1/metadata
   ```

# Automatische Bereinigung von Amazon-ECS-Aufgaben und -Images
<a name="automated_image_cleanup"></a>

Jedes Mal, wenn eine Aufgabe auf einer Container-Instance platziert wird, prüft der Amazon-ECS-Container-Agent, ob die Images, auf die in der Aufgabe verwiesen wird, die neuesten Images des im Repository spezifizierten Tag sind. Wenn dies nicht der Fall ist, gestattet das Standardverhalten dem Agenten, die Images aus den jeweiligen Repositorys abrufen. Wenn Sie die Images in Aufgaben und Services häufig aktualisieren, kann sich der Container-Instance-Speicher schnell mit Docker-Images füllen, die Sie nicht mehr benötigen. Beispielsweise verwenden Sie vielleicht eine Pipeline für fortlaufende Integration und fortlaufende Bereitstellung (Continous Integration and continous deployment (CI/CD)).

**Anmerkung**  
Das Verhalten des Amazon-ECS-Agenten beim Abrufen von Images kann mit dem Parameter `ECS_IMAGE_PULL_BEHAVIOR` angepasst werden. Weitere Informationen finden Sie unter [Konfiguration des Amazon-ECS-Container-Agenten](ecs-agent-config.md).

Ebenso können Container, die zu gestoppten Aufgaben gehören, mit ihren Protokollinformationen, Daten-Volumes und anderen Artefakten Container-Instance-Speicherplatz einnehmen. Diese Artefakte eignen sich für das Debugging von Containern, die unerwarteterweise gestoppt wurden. Doch der Großteil dieses Speichers kann nach einem gewissen Zeitraum problemlos freigemacht werden. 

Standardmäßig bereinigt der Amazon-ECS-Container-Agent automatisch gestoppte Aufgaben und Docker-Images, die nicht von Aufgaben auf Ihren Container-Instances verwendet werden.

**Anmerkung**  
Das Feature der automatischen Image-Bereinigung erfordert mindestens die Amazon-ECS-Container-Agenten-Version 1.13.0. Die neueste Version für Ihren Agent finden Sie unter [Überprüfen des Amazon-ECS-Container-Agenten](ecs-agent-update.md).

Mit den folgenden Agentenkonfigurationsvariablen können Sie Ihre automatische Aufgaben- und Image-Bereinigung an Ihre Bedürfnisse anpassen. Weitere Informationen zum Einrichten dieser Variablen auf Ihren Container-Instances finden Sie unter [Konfiguration des Amazon-ECS-Container-Agenten](ecs-agent-config.md).

`ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION`  
Die Standardzeit, um auf das Löschen von Containern für eine gestoppte Aufgabe zu warten. Wenn der Wert unter 1 Sekunde eingestellt ist, wird der Wert ignoriert. Standardmäßig ist dieser Parameter auf 3 Stunden eingestellt. Sie können diesen Zeitraum jedoch auf bis zu 1 Sekunde verkürzen, wenn dies für Ihre Anwendung erforderlich ist.  
Der Image-Bereinigungsprozess kann kein Image löschen, wenn noch ein Container darauf verweist. Nach dem Entfernen von Containern stehen alle Images, auf die nicht verwiesen wird, für die Bereinigung anhand der Konfigurationsparameter für die Image-Bereinigung zur Verfügung.

`ECS_DISABLE_IMAGE_CLEANUP`  
Wenn Sie diese Variable auf `true` einstellen, ist die automatische Image-Bereinigung auf Ihrer Container-Instance deaktiviert und es werden keine Images automatisch entfernt.

`ECS_IMAGE_CLEANUP_INTERVAL`  
Diese Variable gibt an, wie häufig der automatische Image-Bereinigungsprozess prüft, ob zu löschende Images vorhanden sind. Die Standardeinstellung ist 30 Minuten. Sie können diesen Zeitraum jedoch auch bis zu 10 Minuten verkürzen, wenn die Images häufiger gelöscht werden sollen.

`ECS_IMAGE_MINIMUM_CLEANUP_AGE`  
Über diese Variable wird festgelegt, wie viel Zeit mindestens zwischen dem Abrufen eines Image und dem Löschen vergehen muss. So wird verhindert, dass gerade erst abgerufene Images gelöscht werden. Die Standardeinstellung ist 1 Stunde.

`ECS_NUM_IMAGES_DELETE_PER_CYCLE`  
Diese Variable gibt an, wie viele Images bei einem einzigen Bereinigungszyklus entfernt werden. Der Standardwert ist 5 und der Minimumwert beträgt 1.

Wenn der Amazon-ECS-Container-Agent ausgeführt wird und die automatische Image-Bereinigung nicht deaktiviert ist, prüft der Agent mit einer Häufigkeit, die durch die Variable `ECS_IMAGE_CLEANUP_INTERVAL` angegeben wird, ob Docker-Images vorhanden sind, auf die nicht von laufenden oder gestoppten Containern verwiesen wird. Werden ungenutzte Images gefunden und diese sind älter als die durch die Variable `ECS_IMAGE_MINIMUM_CLEANUP_AGE` angegebene Mindestbereinigungszeit, entfernt der Agent die maximale Anzahl an Images, die durch die Variable `ECS_NUM_IMAGES_DELETE_PER_CYCLE` festgelegt ist. Das Image, dessen Referenz am längsten her ist, wird als erstes gelöscht. Nach dem Entfernen der Images wartet der Agent das nächste Intervall ab und wiederholt dann den Prozess.