Esempi di volumi Docker - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempi di volumi Docker

Per fornire spazio di archiviazione effimero per un contenitore 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.

  1. Nella sezione volumes della definizione di attività, definisci un volume di dati con i valori name e DockerVolumeConfiguration. In questo esempio, specifichiamo l'ambito come task in modo che il volume venga eliminato dopo l'arresto dell'attività e venga utilizzato il driver local incorporato.

    "volumes": [ { "name": "scratch", "dockerVolumeConfiguration" : { "scope": "task", "driver": "local", "labels": { "scratch": "space" } } } ]
  2. Nella sezione containerDefinitions, definisci un container con valori mountPoints che faccia riferimento al nome del volume definito e al valore containerPath per montare il volume sul container.

    "containerDefinitions": [ { "name": "container-1", "mountPoints": [ { "sourceVolume": "scratch", "containerPath": "/var/scratch" } ] } ]
Per fornire lo storage persistente per un 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.

  1. Nella sezione volumes della definizione di attività, definisci un volume di dati con i valori name e DockerVolumeConfiguration. In questo esempio, specificare un ambito shared in modo che il volume persista, imposta il provisioning automatico su true. In questo modo il volume viene creato per l'uso. Quindi, utilizza anche il driver local integrato.

    "volumes": [ { "name": "database", "dockerVolumeConfiguration" : { "scope": "shared", "autoprovision": true, "driver": "local", "labels": { "database": "database_name" } } } ]
  2. Nella sezione containerDefinitions, definisci un container con valori mountPoints che faccia riferimento al nome del volume definito e al valore containerPath per 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.

  1. Nella sezione volumes della definizione di attività, definisci un volume di dati con i valori name e DockerVolumeConfiguration. In questo esempio, specifica un ambito task in modo che il volume venga smontato al termine dell'attività. Usa il driver local e configura le driverOpts con le opzioni type, device e o di conseguenza. Sostituisci NFS_SERVER con 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" } } } ]
  2. Nella sezione containerDefinitions, definisci un container con valori di mountPoints che facciano riferimento al nome del volume definito e al valore di containerPath per montare il volume sul container.

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