Uso de montagens vinculadas com o Amazon ECS
Com montagens vinculadas, um arquivo ou diretório em um host, como uma instância do Amazon EC2, é montado em um contêiner. As montagens bind são compatíveis com tarefas hospedadas em instâncias do Fargate e do Amazon EC2. Montagens vinculadas estão associadas ao ciclo de vida do contêiner que as usa. A partir do momento em que todos os contêineres que utilizam uma montagem bind forem interrompidos, por exemplo, quando uma tarefa é interrompida, os dados serão removidos. Para tarefas hospedadas em instâncias do Amazon EC2, os dados podem ser vinculados ao ciclo de vida da instância do Amazon EC2 do host especificando um host e um valor opcional de sourcePath na definição de tarefa. Para obter mais informações, consulte Montagens bind
Veja a seguir alguns casos de uso comuns de montagens bind.
-
Para fornecer um volume de dados vazio para ser montado em um ou mais contêineres.
-
Para montar um volume de dados de host em um ou mais contêineres.
-
Para compartilhar um volume de dados de um contêiner de origem com outros contêineres na mesma tarefa.
-
Para expor um caminho e seu conteúdo de um Dockerfile para um ou mais contêineres.
Considerações quando forem usadas montagens bind
Ao usar montagens bind, considere o seguinte.
-
Por padrão, as tarefas hospedadas no AWS Fargate usando a versão da plataforma
1.4.0ou posterior (Linux) ou1.0.0ou posterior (Windows) recebem, no mínimo, 20 GiB de armazenamento temporário para montagens vinculadas. É possível aumentar a quantidade total de armazenamento temporário, até um máximo de 200 GiB, com a especificação do parâmetroephemeralStoragena definição da tarefa. -
Para expor arquivos de um Dockerfile a um volume de dados quando uma tarefa é executada, o plano de dados do Amazon ECS procura uma diretiva
VOLUME. Se o caminho absoluto especificado na diretivaVOLUMEé o mesmo que ocontainerPathespecificado na definição de tarefa, os dados no caminho da diretivaVOLUMEsão copiados para o volume de dados. No exemplo de Dockerfile a seguir, um arquivo denominadoexamplefiledo diretório/var/log/exportedé gravado no host e, em seguida, montado no contêiner.FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN mkdir -p/var/log/exportedRUN touch/var/log/exported/examplefileVOLUME ["/var/log/exported"]Por padrão, as permissões de volume são definidas como
0755e o proprietário comoroot. É possível personalizar essas permissões no Dockerfile. O exemplo a seguir define o proprietário do diretório comonode.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"] -
Para tarefas hospedadas em instâncias do Amazon EC2, quando um
hostesourcePathnão são especificados, o daemon do Docker gerencia a montagem bind para você. Quando nenhum contêiner fizer referência a essa montagem bind, o serviço de limpeza de tarefas do agente de contêiner do Amazon ECS acabará excluindo-a. Isso ocorre por padrão três horas após o encerramento do contêiner. Porém, é possível configurar essa duração com a variável de agenteECS_ENGINE_TASK_CLEANUP_WAIT_DURATION. Para obter mais informações, consulte Configuração do agente de contêiner do Amazon ECS. Se você precisar que esses dados persistam além do ciclo de vida do contêiner, especifique um valorsourcePathpara a montagem bind.