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
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 AWS Fargate utilizzando una versione della piattaforma
1.4.0o successiva (Linux)1.0.0o 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 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. -
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/tmpIl 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 systemI bind mount di sola lettura (configurati nel
mountPointsparametro) possono puntare"readOnly": truea 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}' | sortImportante
L'
privilegedimpostazione 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).Per ulteriori informazioni sull'esecuzione interattiva dei comandi nei contenitori, vedere. Monitora i container Amazon ECS con ECS Exec