【问题标题】:Create multiple Docker machines at once with docker-machine使用 docker-machine 一次创建多台 Docker 机器
【发布时间】:2021-08-08 12:11:16
【问题描述】:

在我的应用程序中,我需要在云计算服务(目前是 AWS-EC2,但可以更改)上创建许多 Docker 机器,然后在这些机器上部署许多容器。我正在使用 docker-machine 在 AWS 上配置它们,使用类似的命令

docker-machine create --driver amazonec2 --amazonec2-ssh-keypath <path-to-pem> <machine-name>

问题是创建一台这样的机器需要很长时间,大约 6 分钟。所以总的来说,为我的部署创建机器需要几个小时。有没有办法用docker-machine一次创建多台机器?或者有什么方法可以加快机器的配置?所有机器都具有相同的配置,只是不同的 EC2 实例具有不同的名称。

我认为在后台运行多个docker-machine create 命令可能会起作用,但我担心它可能会破坏docker-machine 的配置(机器列表、内部设置等)。即使我可以安全地运行多个这样的命令,我也不知道如何检查它们何时以及是否成功完成。

P.S:我了解 AWS 支持 Docker 容器,以这种方式创建实例可能会更快。但是他们的计算“服务模型”不适合我的应用程序的需求。

【问题讨论】:

    标签: amazon-web-services docker amazon-ec2 docker-machine


    【解决方案1】:

    同时运行 docker-machine create 命令应该没问题 - 这取决于驱动程序,但我使用 Azure 执行此操作。 Azure 驱动程序有一些逻辑来创建子网、可用性集等,如果它们已经存在,将重新使用它们。假设 AWS 做了类似的事情,你应该创建第一台机器并等待它完成,然后并行启动其余的机器。

    至于知道他们什么时候完成,这很酷to run Docker Machine in a Docker container。这样您就可以使用docker run 命令创建每台机器,并使用docker ps 来查看它们的运行情况。假设你想从主机管理它们,你需要你的容器来共享主机的 Docker 机器状态 - 安装一个卷并将 MACHINE_STORAGE_PATH 设置为主机上的卷应该可以做到。

    【讨论】:

      【解决方案2】:

      TLDR;这将运行 docker-machine 命令 9 次(异步)以创建多台机器。根据需要调整:

      for i in `seq 1 9` ; do docker-machine create --driver virtualbox worker$i & done
      

      创建 9 台机器...

      worker1
      worker2
      worker3
      worker4
      worker5
      worker6
      worker7
      worker8
      worker9
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-16
        • 2015-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多