Execute o docker dentro do docker no AWS Fargate
Criei uma definição de tarefa no Amazon ECS e quero executá-la com o Fargate. Eu configurei minha tarefa, o modo de rede é awsvpc. Criei um novo contêiner com uma imagem docker (projeto "Hello world" simples) no Amazon ECR. Execute a tarefa - tudo funciona bem. Agora preciso executar um contêiner docker de hub.docker.com como parte da tarefa
Dockerfile
FROM ubuntu
RUN apt-get update && apt-install ...
ADD script.sh /script.sh
RUN chmod +x /script.sh
ENTRYPOINT ["/script.sh"]
script.sh
#!/bin/bash
...prepare data
docker run -rm some_container_from_docker_hub
...continue process data
Inicialmente, recebi o erro "comando não encontrado". OK, instalei o docker na minha imagem. Agora eu tenho "Não é possível conectar ao daemon do Docker". Minha pergunta: existe alguma maneira de executar um contêiner docker dentro de outro contêiner docker no Amazon Fargate?
Respostas
Você não pode executar um contêiner de outro contêiner usando o Fargate. Executar um contêiner de outro, como no seu caso, significaria que você poderia ter acesso ao daemon do docker. Acessar o daemon docker significa acesso root à máquina host. Isso quebra o isolamento do contêiner docker e não é seguro.
Dependendo do seu uso, sugiro que você use uma instância EC2, use CodeBuild ou crie um operador que seja capaz de conversar com a API para abranger contêineres.
[Editar]: Parece que há um problema em aberto neste tópico [ECS, Fargate]: Suporte para construir contêineres Docker #95