【问题标题】:Docker in docker on AWS Elastic BeanstalkAWS Elastic Beanstalk 上的 Docker 中的 Docker
【发布时间】:2014-12-22 19:19:48
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: amazon-web-services docker amazon-elastic-beanstalk


    【解决方案1】:

    是的,它可能,但 YMMV。这是一个纲要:

    Dockerrun.aws.json 允许您将任意路径映射到您的容器路径中。因此,您可以将主机的/var/run(包含docker.sock)映射到临时路径。步骤如下:

    确保您有一个暂存目录

    在您的 dockerfile 中:

    RUN mkdir /run-data
    

    确保 Dockerrun.aws.json 包含它:

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

    然后,/run-data/docker.sock 将包含一个合适的 docker 套接字来运行命令。至此,可以参考docker api,直接对话

    对接愉快!

    【讨论】:

      【解决方案2】:

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

      可能有解决方法,但会浪费时间。

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

      您可以在不到 5 分钟的时间内设置一个运行 Docker 的新实例!

      【讨论】:

      • 想知道 dockerun.aws.json 是否可以将 /var/run 映射到其他地方。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-14
      • 2020-11-25
      • 2017-07-26
      • 2015-09-15
      • 2014-09-08
      • 2015-08-05
      • 2021-07-11
      相关资源
      最近更新 更多