

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.

# Bind-Mounts mit Amazon ECS verwenden
<a name="bind-mounts"></a>

Bei Bind-Mounts wird eine Datei oder ein Verzeichnis auf einem Host wie einer Amazon-EC2-Instance in einem Container gemountet. Bind-Mounts werden für Aufgaben unterstützt, die auf Fargate und Amazon-EC2-Instances gehostet werden. Bind-Mounts sind an den Lebenszyklus des Containers gebunden, in dem sie verwendet werden. Nachdem alle Container, die ein Bind-Mount verwenden, gestoppt wurden, z. B. wenn eine Aufgabe gestoppt wird, werden die Daten entfernt. Bei Aufgaben, die auf Amazon-EC2-Instances gehostet werden, können die Daten an den Lebenszyklus der Host-Amazon-EC2-Instance gebunden werden, indem ein `host` und optional ein `sourcePath`-Wert in der Aufgabendefinition festgelegt werden. Weitere Informationen finden Sie unter [Bind-Mounts](https://docs.docker.com/engine/storage/bind-mounts/) in der Docker-Dokumentation.

Die folgenden Szenarien sind gängige Anwendungsfälle für Bind-Mounts.
+ So stellen Sie ein leeres Daten-Volume bereit, das in einem oder mehreren Containern bereitgestellt werden soll.
+ So stellen Sie ein Host-Daten-Volume in einem oder mehreren Containern bereit.
+ So geben Sie ein Daten-Volume aus einem Quell-Container für andere Container in derselben Aufgabe frei.
+ Um einen Pfad und seinen Inhalt aus einer Dockerdatei für einen oder mehrere Container verfügbar zu machen.

## Überlegungen zur Verwendung von Bind-Mounts
<a name="bind-mount-considerations"></a>

Bei der Verwendung von Bind-Mounts sollte Folgendes berücksichtigt werden.
+ Standardmäßig erhalten Aufgaben, die auf der AWS Fargate Plattformversion `1.4.0` oder höher (Linux) `1.0.0` oder höher (Windows) gehostet werden, mindestens 20 GiB flüchtigen Speicher für Bind-Mounts. Sie können die Gesamtmenge des flüchtigen Speichers bis zu einem Maximum von 200 GiB erhöhen, indem Sie den `ephemeralStorage`-Parameter in Ihrer Aufgabendefinition angeben.
+ Um Dateien aus einer Docker-Datei auf einem Daten-Volume verfügbar zu machen, wenn eine Aufgabe ausgeführt wird, sucht die Amazon-ECS-Datenebene nach einer `VOLUME`-Richtlinie. Wenn der absolute Pfad, der in der `VOLUME`-Richtlinie angegeben ist der gleiche wie `containerPath` ist, die in der Aufgabendefinition angegeben sind, werden die Daten im `VOLUME`-Richtlinienpfad auf das Daten-Volume kopiert. Im folgenden Dockerfile-Beispiel wird eine Datei mit dem Namen `examplefile` im `/var/log/exported`-Verzeichnis auf den Host geschrieben und dann innerhalb des Containers gemountet.

  ```
  FROM public.ecr.aws/amazonlinux/amazonlinux:latest
  RUN mkdir -p {{/var/log/exported}}
  RUN touch {{/var/log/exported/examplefile}}
  VOLUME ["{{/var/log/exported}}"]
  ```

  Standardmäßig sind die Volume-Berechtigungen auf `0755` und der Besitzer als `root` festgelegt. Sie können diese Berechtigungen in der Dockerfile anpassen. Das folgende Beispiel definiert den Eigentümer des Verzeichnisses als `node`.

  ```
  FROM public.ecr.aws/amazonlinux/amazonlinux:latest
  RUN yum install -y shadow-utils && yum clean all
  RUN useradd {{node}}
  RUN mkdir -p /var/log/exported && chown {{node}}:{{node}} /var/log/exported
  RUN touch /var/log/exported/examplefile
  USER {{node}}
  VOLUME ["/var/log/exported"]
  ```
+ Bei Aufgaben, die auf Amazon-EC2-Instances gehostet werden, wenn ein `host`- und `sourcePath`-Wert nicht angegeben ist, verwaltet der Docker-Daemon das Bind-Mount für Sie. Wenn keine Container auf dieses Bind-Mount verweisen, löscht der Aufgabenbereinigungsservice des Amazon-ECS-Container-Agenten es letztendlich. Standardmäßig geschieht dies drei Stunden nach dem Stoppen des Containers. Die Zeitspanne kann aber mit der Agenten-Variable `ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION` konfiguriert werden. Weitere Informationen finden Sie unter [Konfiguration des Amazon-ECS-Container-Agenten](ecs-agent-config.md). Wenn Sie diese Daten länger als den Lebenszyklus des Containers beibehalten möchten, geben Sie für den Bind-Mount einen `sourcePath`-Wert an.
+ Bei Aufgaben, die auf Amazon ECS Managed Instances gehostet werden, sind Teile des Root-Dateisystems schreibgeschützt. Read/write Bind-Mounts müssen beschreibbare Verzeichnisse verwenden, z. B. `/var` für persistente Daten oder für temporäre Daten. `/tmp` Der Versuch, read/write Bind-Mounts für andere Verzeichnisse zu erstellen, führt dazu, dass die Aufgabe nicht gestartet werden kann und ein Fehler ähnlich dem folgenden angezeigt wird:

  ```
  error creating empty volume: error while creating volume path '/path': mkdir /path: read-only file system
  ```

  Schreibgeschützte Bind-Mounts (mit `"readOnly": true` im `mountPoints` Parameter konfiguriert) können auf jedes beliebige Verzeichnis auf dem Host verweisen, auf das zugegriffen werden kann.

  Um eine vollständige Liste der beschreibbaren Pfade anzuzeigen, können Sie eine Aufgabe auf einer Amazon ECS Managed Instance ausführen und damit die Mount-Tabelle der Instance überprüfen. Erstellen Sie eine Aufgabendefinition mit den folgenden Einstellungen, um auf das Host-Dateisystem zuzugreifen:

  ```
  {
      "pidMode": "host",
      "containerDefinitions": [{
          "privileged": true,
          {{...}}
      }]
  }
  ```

  Führen Sie dann die folgenden Befehle im Container aus:

  ```
  # List writable mounts
  cat /proc/1/root/proc/1/mounts | awk '$4 ~ /^rw,/ || $4 == "rw" {print $2}' | sort
  
  # List read-only mounts
  cat /proc/1/root/proc/1/mounts | awk '$4 ~ /^ro,/ || $4 == "ro" {print $2}' | sort
  ```
**Wichtig**  
Die `privileged` Einstellung gewährt dem Container erweiterte Funktionen auf dem Host, was dem Root-Zugriff entspricht. In diesem Beispiel wird sie verwendet, um die Mount-Tabelle des Hosts zu Diagnosezwecken zu überprüfen. Weitere Informationen finden Sie unter [Vermeiden, Container als privilegiert auszuführen (Amazon EC2)](security-tasks-containers.md#security-tasks-containers-recommendations-avoid-privileged-containers).

  Weitere Hinweise zur interaktiven Ausführung von Befehlen in Containern finden Sie unter[Überwachen von Amazon-ECS-Containern mit ECS Exec](ecs-exec.md).