Запуск docker внутри docker на AWS Fargate

#docker #amazon-ecs #aws-fargate

#docker #amazon-ecs #aws-fargate

Вопрос:

Я создал определение задачи на Amazon ECS и хочу запустить с помощью Fargate. Я настроил свою задачу, сетевой режим — awsvpc. Я создал новый контейнер с изображением docker (простой проект «Hello world») на Amazon ECR. Запустите задачу — все работает нормально. Теперь мне нужно запустить контейнер docker из hub.docker.com как часть задачи

Докерфайл

 FROM ubuntu

RUN apt-get update amp;amp; 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
  

Изначально я получил сообщение об ошибке «команда не найдена». Хорошо, я установил docker в свой образ. Теперь у меня «Не удается подключиться к демону Docker».
Мой вопрос: есть ли какой-либо способ запустить контейнер docker внутри другого контейнера docker на Amazon Fargate?

Ответ №1:

Вы не можете запустить контейнер из другого контейнера с помощью Fargate. Запуск контейнера из другого, как в вашем случае, означал бы, что вы могли бы получить доступ к демону docker. Доступ к демону docker означает корневой доступ к хост-машине. Это нарушает изоляцию контейнера docker и небезопасно.

В зависимости от вашего использования, я предлагаю вам использовать экземпляр EC2, использовать CodeBuild или создать оператора, который может взаимодействовать с API для охвата контейнеров.

[Редактировать]: Похоже, что по этой теме есть открытая проблема [ECS, Fargate]: поддержка создания контейнеров Docker # 95