Docker在AWS Elastic Beanstalk上的Docker

我有一个运行在弹性beanstalk上的docker容器。 在这个容器中,我想使用在主机操作系统上运行的docker守护进程运行其他容器。

正如我在这里阅读http://blog.docker.com/category/demos/ ,如果通过以下方式调用第一个容器是可能的:

docker run -it -v /var/run/docker.sock:/var/run/docker.sock <image_name>

我可以让Beanstalk调用我的容器是这样吗?

是的,它可能,但是YMMV。 这里是一个简要说明:

Dockerrun.aws.json允许您将任意path映射到您的容器path。 因此,您可以将主机的/var/run (其中包含docker.sockdocker.sock到临时path。 这里是步骤:

确保你有一个暂存目录

在你的dockerfile中:

 RUN mkdir /run-data 

确保Dockerrun.aws.json包含它:

 { "AWSEBDockerrunVersion": "1", "Logging": "/app/log", "Volumes": [ { "HostDirectory": "/var/run", "ContainerDirectory": "/run-data" } ] } 

然后,/ /run-data/docker.sock将包含用于运行命令的合适的/run-data/docker.sock套接字。 从这一点,你可以参考docker api并直接与之交谈

快乐对接!

不幸的是,Amazon Elastic Beanstalk采用策略“ 每个虚拟机一个容器 ”,这是相当有限的。

可能有一个解决办法,但这将是浪费时间。

如果您需要这样做,您应该使用Amazon EC2。

您可以在5分钟内build立一个运行Docker的新实例!