我有一个在弹性beanstalk上运行的docker容器。在此容器中,我想使用在主机操作系统上运行的docker守护程序运行其他容器。
正如我在这里阅读http://blog.docker.com/category/demos/,如果第一个容器被调用:
docker run -it -v /var/run/docker.sock:/var/run/docker.sock <image_name>
我可以让Beanstalk调用我的容器吗?
答案 0 :(得分:0)
不幸的是,Amazon Elastic Beanstalk采用了策略&#34; 每个VM一个容器&#34;这是相当有限的。
可能有一种解决方法,但这会浪费时间。
如果您需要,请使用Amazon EC2。
您可以在不到5分钟的时间内设置运行Docker的新实例!
答案 1 :(得分:0)
是的,它可能,但是YMMV。这是一个纲要:
Dockerrun.aws.json允许您将任意路径映射到容器路径中。因此,您可以将主机的/var/run
(包含docker.sock
)映射到临时路径中。以下是步骤:
在您的dockerfile中:
RUN mkdir /run-data
{
"AWSEBDockerrunVersion": "1",
"Logging": "/app/log",
"Volumes": [
{
"HostDirectory": "/var/run",
"ContainerDirectory": "/run-data"
}
]
}
然后,/run-data/docker.sock
将包含用于运行命令的合适的docker套接字。从这一点开始,您可以参考docker api并直接与它交谈
快乐对接!