Esempi di volumi Docker per Amazon ECS
Gli esempi seguenti mostrano come fornire un archivio temporaneo per un container, come fornire un volume condiviso per più container e come fornire un archivio NFS persistente per un container.
Fornire un archivio temporaneo per un container utilizzando un volume Docker
In questo esempio, un container utilizza un volume di dati vuoto che viene smaltito al termine dell'attività. Ad esempio, potresti avere un container che deve accedere alla posizione di storage di alcuni file temporanei durante un'attività. Questa attività può essere eseguita utilizzando un volume Docker.
-
Nella sezione
volumesdella definizione di attività, definisci un volume di dati con i valorinameeDockerVolumeConfiguration. In questo esempio, specifichiamo l'ambito cometaskin modo che il volume venga eliminato dopo l'arresto dell'attività e venga utilizzato il driverlocalincorporato."volumes": [ { "name": "scratch", "dockerVolumeConfiguration" : { "scope": "task", "driver": "local", "labels": { "scratch": "space" } } } ] -
Nella sezione
containerDefinitions, definisci un container con valorimountPointsche faccia riferimento al nome del volume definito e al valorecontainerPathper montare il volume sul container."containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "scratch", "containerPath": "/var/scratch" } ] } ]
Fornire un archivio persistente per più container utilizzando un volume Docker
In questo esempio, desideri un volume condiviso per più container da utilizzare e che persista dopo l'interruzione di qualsiasi singola attività che lo utilizza. Il driver local integrato è in uso. Per questo motivo, il volume è ancora legato al ciclo di vita dell'istanza di container.
-
Nella sezione
volumesdella definizione di attività, definisci un volume di dati con i valorinameeDockerVolumeConfiguration. In questo esempio, specificare un ambitosharedin modo che il volume persista, imposta il provisioning automatico sutrue. In questo modo il volume viene creato per l'uso. Quindi, utilizza anche il driverlocalintegrato."volumes": [ { "name": "database", "dockerVolumeConfiguration" : { "scope": "shared", "autoprovision": true, "driver": "local", "labels": { "database": "database_name" } } } ] -
Nella sezione
containerDefinitions, definisci un container con valorimountPointsche faccia riferimento al nome del volume definito e al valorecontainerPathper montare il volume sul container."containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "database", "containerPath": "/var/database" } ] }, { "name": "container-2", "mountPoints": [ { "sourceVolume": "database", "containerPath": "/var/database" } ] } ]
Fornire lo spazio di archiviazione persistente per un container utilizzando un volume Docker
In questo esempio, un container utilizza un volume di dati NFS che viene montato automaticamente all'avvio dell'attività e viene smontato al termine. Questo utilizza il driver local integrato in Docker. Un esempio di caso d'uso potrebbe essere quello in cui hai un'archiviazione NFS locale e hai la necessità di accedervi attraverso un'attività ECS Anywhere. Ciò può essere ottenuto utilizzando un volume Docker con opzione driver NFS.
-
Nella sezione
volumesdella definizione di attività, definisci un volume di dati con i valorinameeDockerVolumeConfiguration. In questo esempio, specifica un ambitotaskin modo che il volume venga smontato al termine dell'attività. Usa il driverlocale configura ledriverOptscon le opzionitype,deviceeodi conseguenza. SostituisciNFS_SERVERcon l'endpoint del server NFS."volumes": [ { "name": "NFS", "dockerVolumeConfiguration" : { "scope": "task", "driver": "local", "driverOpts": { "type": "nfs", "device": "$NFS_SERVER:/mnt/nfs", "o": "addr=$NFS_SERVER" } } } ] -
Nella sezione
containerDefinitions, definisci un container con valori dimountPointsche facciano riferimento al nome del volume definito e al valore dicontainerPathper montare il volume sul container."containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "NFS", "containerPath": "/var/nfsmount" } ] } ]