在AWS Fargate上运行Docker容器内部的Docker。

4

我在亚马逊 ECS 上创建了一个任务定义,并希望在 Fargate 上运行。我设置了我的任务,网络模式为 awsvpc。我在 Amazon ECR 上创建了一个包含 Docker 镜像(简单的“Hello world”项目)的新容器。运行任务 - 一切都运行良好。现在我需要作为任务的一部分从 hub.docker.com 运行一个 Docker 容器。

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

起初,我遇到了“命令未找到”的错误。好的,我将Docker安装到了镜像中。现在我遇到了“无法连接到Docker守护进程”的错误。 我的问题是:有没有办法在Amazon Fargate上在一个Docker容器内运行另一个Docker容器?

1个回答

4
在Fargate中,您无法从另一个容器运行容器。 像您的情况一样从另一个容器运行容器将意味着您可以访问docker守护程序。访问docker守护程序意味着可以以root权限访问主机。这会破坏docker容器隔离并且是不安全的。
根据您的用途,建议您使用EC2实例、使用CodeBuild或构建一个能够与API通信来生成容器的操作符。
[编辑]: 这个话题似乎有一个开放问题:[ECS,Fargate]: Support for building Docker containers #95

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接