【发布时间】:2019-02-27 14:20:43
【问题描述】:
我在一个 Docker 网络上运行 1000 个容器,所有容器都来自同一个 Docker 映像。
目前部署需要很长时间。我将流程分为docker create 和docker start,而不是单一的docker run。
有什么方法可以并行旋转容器? - 乐于使用编程接口(Go、C 等)或使用 CLI 命令。
相关:Can Docker Engine start containers in parallel[3年前问及回答]
【问题讨论】:
-
你试过 Swarm 或 Docker Compose 吗?
-
那些不只是为了运行相互关联的容器吗? - AFAIK 他们不会同时
docker run/docker start他们。 -
您可以使用 Swarm 或 Compose 来启动单个服务(即使用 Docker 映像的服务)并扩展容器的数量。这两个选项都是可行的,Swarm 可以在节点集群上工作,也可以为您提供负载平衡。 Compose 不会处理端口冲突,它只能在单台机器上工作。 Swarm 和 Compose 都具有部署选项,因此您可以根据自己的项目对其进行微调。
-
@Mark 你应该把它作为一个答案。
-
“我需要提前知道所有节点名称和地址”,我强烈建议您使用 Kubernetes 来实现这一点。特别是使用 Kops,因此基础设施的创建非常容易。将为您管理网络、dns、创建实例集群等。然后 100、1000 或 10000 将只是触发扩展的数字。
标签: docker docker-engine containerd