Utilizzo di montaggio vincolato con Amazon ECS - Amazon Elastic Container Service

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

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.0 o successiva (Linux) oppure 1.0.0 o 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 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. Se è necessario che questi dati vengano conservati oltre il ciclo di vita del container, specifica un valore sourcePath per il montaggio vincolato.