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.sock
) docker.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的新实例!
- 在AWS beanstalk下将特定的EBS卷挂载到Docker
- 带有Docker和Elastic Beanstalk的企业应用程序
- Docker-Compose Up Works但Eb Local Run不行
- 在AWS Elastic Beanstalk上部署Dockerized Symfony2应用程序
- 通过CLI部署命令与Dockerrun.aws.json部署到elasticbeanstalk
- 在Elastic Beanstalk上部署Docker环境
- eb本地运行vs eb部署?
- 与Docker的ElasticBean:如何使用aws cli的create-environment
- Elastic Beanstalk单容器泊坞窗 – 使用awslogslogging驱动程序