Beispiele für Docker-Volumes für Amazon ECS - Amazon Elastic Container Service

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.

Beispiele für Docker-Volumes für Amazon ECS

Die folgenden Beispiele zeigen, wie kurzlebigen Speicher für einen Container bereitgestellt wird und wie ein gemeinsam genutzter Datenträger für mehrere Container bereitgestellt wird und wie persistenter NFS-Speicher für einen Container bereitgestellt wird.

Um kurzlebigen Speicher für einen Container mithilfe eines Docker-Volumes bereitzustellen

In diesem Beispiel verwendet ein Container ein leeres Datenvolumen, das nach Beendigung der Aufgabe entsorgt wird. Ein Beispielanwendungsfall ist, dass Sie z. B. einen Container besitzen, der während einer Aufgabe auf irgendeinen Scratch-Dateispeicherort zugreifen muss. Diese Aufgabe kann mit einem Docker-Volume gelöst werden.

  1. Definieren Sie im Abschnitt volumes der Aufgabendefinition ein Datenvolume mit name- und DockerVolumeConfiguration-Werten. In diesem Beispiel geben wir den Umfang als task an, sodass das Volume gelöscht wird, nachdem die Aufgabe angehalten wurde. Zudem wird der local-Treiber verwendet.

    "volumes": [ { "name": "scratch", "dockerVolumeConfiguration" : { "scope": "task", "driver": "local", "labels": { "scratch": "space" } } } ]
  2. Definieren Sie im Abschnitt containerDefinitions einen Container mit mountPoints-Werten, die auf den Namen des definierten Volumes und den Wert containerPath verweisen, um das Volume auf den Container zu mounten.

    "containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "scratch", "containerPath": "/var/scratch" } ] } ]
Um persistenten Speicher für mehrere Container mithilfe eines Docker-Volumes bereitzustellen

In diesem Beispiel möchten Sie, dass ein freigegebenes Volume für mehrere Container verwendet werden soll und es soll bestehen bleiben, nachdem jede einzelne Aufgabe gestoppt wurde, die es verwendet. Der integrierte local-Treiber wird verwendet, damit das Volume weiterhin mit dem Lebenszyklus der Container-Instance verknüpft ist.

  1. Definieren Sie im Abschnitt volumes der Aufgabendefinition ein Datenvolume mit name- und DockerVolumeConfiguration-Werten. In diesem Beispiel geben Sie einen shared-Geltungsbereich an, damit das Volume bestehen bleibt. Legen Sie die automatische Bereitstellung auf true fest, damit das Volume zur Verwendung erstellt wird. Verwenden Sie dann auch den integrierten local-Treiber.

    "volumes": [ { "name": "database", "dockerVolumeConfiguration" : { "scope": "shared", "autoprovision": true, "driver": "local", "labels": { "database": "database_name" } } } ]
  2. Definieren Sie im Abschnitt containerDefinitions einen Container mit mountPoints-Werten, die auf den Namen des definierten Volumes und den Wert containerPath verweisen, um das Volume auf den Container zu mounten.

    "containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "database", "containerPath": "/var/database" } ] }, { "name": "container-2", "mountPoints": [ { "sourceVolume": "database", "containerPath": "/var/database" } ] } ]
So stellen Sie NFS-persistenten Speicher für einen Container mit einem Docker-Volume bereit

In diesem Beispiel verwendet ein Container ein NFS-Datenvolumen, das beim Start der Aufgabe automatisch gemountet und beim Beenden der Aufgabe automatisch getrennt wird. Dies verwendet den in Docker integrierten local-Treiber. Ein Beispiel für einen Anwendungsfall ist, dass Sie möglicherweise über einen lokalen NFS-Speicher verfügen und von einer ECS-Anywhere-Aufgabe aus darauf zugreifen müssen. Dies kann mit einem Docker-Volume mit NFS-Treiberoption erreicht werden.

  1. Definieren Sie im Abschnitt volumes der Aufgabendefinition ein Datenvolume mit name- und DockerVolumeConfiguration-Werten. Geben Sie in diesem Beispiel einen task-Bereich an, damit das Volume nach Beendigung der Aufgabe getrennt wird. Verwenden Sie den local-Treiber und konfigurieren Sie driverOpts mit den type-, device-, and o-Optionen entsprechend. Ersetzen Sie NFS_SERVER durch den NFS-Serverendpunkt.

    "volumes": [ { "name": "NFS", "dockerVolumeConfiguration" : { "scope": "task", "driver": "local", "driverOpts": { "type": "nfs", "device": "$NFS_SERVER:/mnt/nfs", "o": "addr=$NFS_SERVER" } } } ]
  2. Definieren Sie im containerDefinitions-Abschnitt einen Container mit mountPoints-Werten, die auf den Namen des definierten Volumes und den containerPath-Wert verweisen, um das Volume im Container bereitzustellen.

    "containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "NFS", "containerPath": "/var/nfsmount" } ] } ]