在单个主机中扩展服务的多个容器

问题描述 投票:0回答:1

我通过命令“docker-compose up --scale”在单个linux主机上扩展多个服务容器。但是,每个容器都可以使用主机的所有资源(CPU和RAM)。像那样扩展似乎毫无用处。

因此,我尝试通过docker-compose.yml文件中的“cpus”和“mem_limit”标记来限制每个容器的可用CPU和RAM(我目前正在使用docker-compose版本2)。

这是我的docker-compose.yml文件

version: "2.2"
services:
  test:
    image: test
    mem_limit: 500000000
    container_name: test
    build: ./test
    restart: always
    mem_limit: 500000000
    mem_reservation: 300m
    cpus: 0.5
    networks:
      - test-network
    ports:
      - "9000:80"

但我不知道如果在单个主机上扩展服务的多个容器是否有用?此外,有没有办法自动扩展此服务(按需扩展)?谢谢,

performance docker docker-compose scale docker-swarm
1个回答
-1
投票
version: "3"
services:
  test:
    image: test
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.5"
          memory: 500M
      restart_policy:
        condition: always
    ports:
      - "9000:80"
    networks:
      - test-network
networks:
  test-network:
docker swarm init #Initialize machine as docker swarm manager
docker stack deploy -c docker-compose.yml testing #This will start 5 containers for the same image as replica

您可以通过在docker-compose.yml中将副本更改为6值来扩展应用程序,保存更改并重新运行

docker stack deploy -c docker-compose.yml testing #Docker performs an in-place update, no need to tear the stack down first or kill any containers

有关详细说明,您可以按照本文https://docs.docker.com/get-started/part3/进行操作。但我建议你从本教程的第一部分开始。

对于任何码头实验,您可以尝试https://labs.play-with-docker.com/

© www.soinside.com 2019 - 2024. All rights reserved.