

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à.

# Utilizzo di montaggio vincolato con Amazon ECS
<a name="bind-mounts"></a>

Con i montaggi vincolati, un file o una directory su un host, ad esempio un'istanza Amazon EC2, sono montati in un container. I montaggi vincolati sono supportati per le attività ospitate su istanze Fargate o Amazon EC2. I montaggi vincolati sono legati al ciclo di vita del container che li utilizza. Una volta arrestati tutti i container che utilizzano un montaggio vincolato, ad esempio quando viene arrestata un'attività, i dati vengono rimossi. Per le attività ospitate su istanze Amazon EC2, i dati possono essere legati al ciclo di vita dell'istanza Amazon EC2 host specificando un `host` e un valore `sourcePath` facoltativo nella definizione di attività. Per ulteriori informazioni, consultare [Bind mounts](https://docs.docker.com/engine/storage/bind-mounts/) nella documentazione Docker.

I seguenti sono casi d'uso comune dei montaggi vincolati.
+ Per fornire un volume di dati vuoto da montare in uno o più container.
+ Per fornire un volume di dati host in uno o più container.
+ Per condividere un volume di dati da un container di origine con altri container nello stesso processo.
+ Per esporre un percorso e il relativo contenuto da un Dockerfile a uno o più container.

## Considerazioni su quando utilizzare i montaggi vincolati
<a name="bind-mount-considerations"></a>

Quando usi i montaggi vincolati, tieni presente le seguenti considerazioni.
+ Per impostazione predefinita, le attività ospitate AWS Fargate utilizzando una versione della piattaforma `1.4.0` o successiva (Linux) `1.0.0` o successiva (Windows) ricevono un minimo di 20 GiB di storage temporaneo per i bind mount. Puoi aumentare la quantità totale di archiviazione temporanea fino a un massimo di 200 GiB, specificando il parametro `ephemeralStorage` nella definizione di attività.
+ Per esporre i file da un Dockerfile a un volume di dati quando viene eseguito un processo, il piano dati di Amazon ECS cerca una direttiva `VOLUME`. Se il percorso assoluto specificato nella direttiva `VOLUME` è lo stesso presente nel `containerPath` specificato nella definizione di attività, i dati nel percorso della direttiva `VOLUME` vengono copiati sul volume di dati. Nell'esempio Dockerfile seguente, un file denominato `examplefile` nella directory `/var/log/exported` viene scritto sull'host e quindi montato all'interno del container.

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

  Di default, le autorizzazioni dei volumi sono impostate su `0755` e il proprietario è `root`. Queste autorizzazioni possono essere personalizzate nel Dockerfile. L'esempio seguente definisce il proprietario della directory come `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"]
  ```
+ Per le attività ospitate su istanze Amazon EC2, quando non sono specificati i valori `host` e `sourcePath`, il daemon Docker gestisce il montaggio vincolato per tuo conto. Quando nessun container fa riferimento a questo montaggio vincolato, viene alla fine eliminato dal servizio di pulizia dell'attività dell'agente del container Amazon ECS. Per impostazione predefinita, ciò avviene tre ore dopo la chiusura del container. Tuttavia, puoi configurare questa durata con la variabile dell'agente `ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION`. Per ulteriori informazioni, consulta [Configurazione dell'agente del container Amazon ECS](ecs-agent-config.md). Se è necessario che questi dati vengano conservati oltre il ciclo di vita del container, specifica un valore `sourcePath` per il montaggio vincolato.
+ Per le attività ospitate su Amazon ECS Managed Instances, parti del filesystem root sono di sola lettura. Read/write i bind mount devono utilizzare directory scrivibili, ad esempio per dati persistenti o temporanei. `/var` `/tmp` Il tentativo di creare read/write bind mount su altre directory comporta l'impossibilità di avviare l'attività con un errore simile al seguente:

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

  Read-only i bind mount (configurati con il `mountPoints` parametro) possono puntare `"readOnly": true` a qualsiasi directory accessibile sull'host.

  Per visualizzare un elenco completo di percorsi scrivibili, puoi eseguire un'attività su un'istanza gestita di Amazon ECS e utilizzarla per ispezionare la tabella di montaggio dell'istanza. Crea una definizione di attività con le seguenti impostazioni per accedere al filesystem host:

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

  Quindi esegui i seguenti comandi dall'interno del contenitore:

  ```
  # 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
  ```
**Importante**  
L'`privileged`impostazione concede al contenitore funzionalità estese sull'host, equivalenti all'accesso root. In questo esempio, viene utilizzata per ispezionare la tabella di montaggio dell'host a fini diagnostici. Per ulteriori informazioni, consulta [Evitare l'esecuzione di container con privilegi (Amazon EC2)](security-tasks-containers.md#security-tasks-containers-recommendations-avoid-privileged-containers).

  Per ulteriori informazioni sull'esecuzione interattiva dei comandi nei contenitori, vedere. [Monitora i container Amazon ECS con ECS Exec](ecs-exec.md)