【问题标题】:Docker swarm stop spin up containers at 250Docker swarm 在 250 处停止启动容器
【发布时间】:2017-08-17 23:41:07
【问题描述】:
TLDR:Docker 不会启动超过 250 个容器。
我正在将一个由 3 个 docker 服务组成的集群部署到一个具有 2 个节点的集群中。其中 2 个服务需要包含 1 个容器(在 docker-compose 文件中有一个 replicas: 1),第三个服务需要有 300 个容器(有一个 replicas: 300 设置)。
问题在于它启动了这 3 个服务,前两个服务每个都有 1 个容器(按应有的方式工作),第三个服务启动了 300 个容器中的 248 个(我在 docker service ls 时看到了这一点)。我尝试搜索是否有服务或群的限制,但找不到。
如果能得到任何帮助,我将不胜感激。
- 如果有关系,每个节点都有 30GB RAM 和 8 个内核,而我只使用了 1/3 的 RAM。
【问题讨论】:
标签:
docker
docker-compose
dockerfile
docker-swarm
【解决方案1】:
我只是想通了。问题不在于服务或群体,而在于网络。
当我使用driver: overlay 时,默认的subnet 是10.0.0.0/24,这会导致254 地址。所以我把subnet中的掩码改成22,得到1022地址,我补充道:
ipam:
config:
-subnet: 10.0.0.0/22
现在docker-compose 文件中的网络部分如下所示:
networks:
web:
driver: overlay
ipam:
config:
- subnet: 10.0.0.0/22
【解决方案2】:
我认为您不能为一项服务启动超过 250 个服务,因为所有这些服务都位于同一个网络上,这基本上意味着使用 250 多个 IP 地址。除非您定义一个自定义 ipv6 网络并尝试这样做,否则您最好向您的 swarm 添加一个额外的网络,然后在该 swarm 但在另一个网络上旋转一个新的相同服务
TL;博士;
定义 2 个网络并将它们全部添加到服务中,然后查看是否可以启动超过 250 个副本