Utilizzo di montaggio vincolato con Amazon ECS
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
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
Quando usi i montaggi vincolati, tieni presente le seguenti considerazioni.
-
Per impostazione predefinita, le attività ospitate su AWS Fargate che utilizzano la versione della piattaforma
1.4.0o successiva (Linux) oppure1.0.0o successiva (Windows) ricevono almeno 20 GiB di storage temporaneo per i montaggi vincolati. Puoi aumentare la quantità totale di archiviazione temporanea fino a un massimo di 200 GiB, specificando il parametroephemeralStoragenella 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 direttivaVOLUMEè lo stesso presente nelcontainerPathspecificato nella definizione di attività, i dati nel percorso della direttivaVOLUMEvengono copiati sul volume di dati. Nell'esempio Dockerfile seguente, un file denominatoexamplefilenella directory/var/log/exportedviene scritto sull'host e quindi montato all'interno del container.FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN mkdir -p/var/log/exportedRUN touch/var/log/exported/examplefileVOLUME ["/var/log/exported"]Di default, le autorizzazioni dei volumi sono impostate su
0755e il proprietario èroot. Queste autorizzazioni possono essere personalizzate nel Dockerfile. L'esempio seguente definisce il proprietario della directory comenode.FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN yum install -y shadow-utils && yum clean all RUN useraddnodeRUN mkdir -p /var/log/exported && chownnode:node/var/log/exported RUN touch /var/log/exported/examplefile USERnodeVOLUME ["/var/log/exported"] -
Per le attività ospitate su istanze Amazon EC2, quando non sono specificati i valori
hostesourcePath, 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'agenteECS_ENGINE_TASK_CLEANUP_WAIT_DURATION. Per ulteriori informazioni, consulta Configurazione dell'agente del container Amazon ECS. Se è necessario che questi dati vengano conservati oltre il ciclo di vita del container, specifica un valoresourcePathper il montaggio vincolato.