Exemplos de volume do Docker para o Amazon ECS
Os exemplos a seguir mostram como fornecer armazenamento efêmero para um contêiner, como fornecer um volume compartilhado para vários contêineres e como fornecer armazenamento persistente NFS para um contêiner.
Para fornecer armazenamento temporário em um contêiner usando um volume do Docker
Neste exemplo, um contêiner utiliza um volume de dados vazio que é descartado após o término da tarefa. Um exemplo de caso de uso é que você pode ter um contêiner que precisa acessar algum local de armazenamento de arquivos temporários durante uma tarefa. Essa tarefa pode ser realizada usando um volume do Docker.
-
Na seção
volumesde definição de tarefa, defina um volume de dados com os valoresnameeDockerVolumeConfiguration. Neste exemplo, especificamos o escopo comotaskpara que o volume seja excluído depois que a tarefa é interrompida e use o driverlocalintegrado."volumes": [ { "name": "scratch", "dockerVolumeConfiguration" : { "scope": "task", "driver": "local", "labels": { "scratch": "space" } } } ] -
Na seção
containerDefinitions, defina um contêiner com valoresmountPointsque faz referência ao nome do volume definido e o valorcontainerPathpara montar o volume no contêiner."containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "scratch", "containerPath": "/var/scratch" } ] } ]
Para fornecer armazenamento persistente para vários contêiner usando um volume do Docker
Neste exemplo, você quer um volume compartilhado para vários contêineres usarem e deseja que ele persista após a interrupção de qualquer tarefa única que o esteja usando. O driver local integrado está sendo usado. Isso acontece para que o volume permaneça vinculado ao ciclo de vida da instância de contêiner.
-
Na seção
volumesde definição de tarefa, defina um volume de dados com os valoresnameeDockerVolumeConfiguration. Neste exemplo, especifique um escoposharedde forma que o volume persista e defina a provisão automática comotrue. Isso acontece para que o volume seja criado para uso. Então, utilize também o driverlocalincorporado."volumes": [ { "name": "database", "dockerVolumeConfiguration" : { "scope": "shared", "autoprovision": true, "driver": "local", "labels": { "database": "database_name" } } } ] -
Na seção
containerDefinitions, defina um contêiner com valoresmountPointsque faz referência ao nome do volume definido e o valorcontainerPathpara montar o volume no contêiner."containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "database", "containerPath": "/var/database" } ] }, { "name": "container-2", "mountPoints": [ { "sourceVolume": "database", "containerPath": "/var/database" } ] } ]
Para fornecer armazenamento NFS persistente para um contêiner usando um volume do Docker
Neste exemplo, um contêiner utiliza um volume de dados do NFS que é montado automaticamente quando a tarefa é iniciada e desmontado quando a tarefa é interrompida. Isso usa o driver local integrado do Docker. Um exemplo de caso de uso: você pode ter um armazenamento NFS local e precisa acessá-lo por meio de uma tarefa do ECS Anywhere. Isso pode ser feito usando uma opção de volume do Docker com driver NFS.
-
Na seção
volumesde definição de tarefa, defina um volume de dados com os valoresnameeDockerVolumeConfiguration. Neste exemplo, especifique um escopo detaskpara que o volume seja desmontado após o término da tarefa. Use o driverlocale configure odriverOptscom as opçõestype,deviceeode acordo. SubstituaNFS_SERVERpelo endpoint do servidor NFS."volumes": [ { "name": "NFS", "dockerVolumeConfiguration" : { "scope": "task", "driver": "local", "driverOpts": { "type": "nfs", "device": "$NFS_SERVER:/mnt/nfs", "o": "addr=$NFS_SERVER" } } } ] -
Na seção
containerDefinitions, defina um contêiner com valoresmountPointsque faça referência ao nome do volume definido e o valorcontainerPathpara montar o volume no contêiner."containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "NFS", "containerPath": "/var/nfsmount" } ] } ]