#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