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

Performance 在单个主机中扩展服务的多个容器,performance,docker,docker-compose,scale,docker-swarm,Performance,Docker,Docker Compose,Scale,Docker Swarm,我通过命令“docker compose up--scale”在单个linux主机上扩展服务的多个容器。但是,每个容器都可以使用主机的所有资源(CPU和RAM)。这样的规模似乎没有用 因此,我试图通过docker-compose.yml文件中的“CPU”和“mem_limit”标记来限制每个容器(我目前使用的是docker compose版本2)的可用CPU和RAM 这是我的docker-compose.yml文件 version: "2.2" services: test: ima

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

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

这是我的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"
但我不知道在一台主机上扩展一个服务的多个容器是否有用?另外,是否有任何方法可以自动扩展此服务(按需扩展)? 谢谢,

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-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
有关详细说明,请参阅本文。 但我建议您从本教程的第一部分开始


对于任何docker实验,您都可以尝试

无论谁将此答案标记为否定,请告诉原因谢谢您的回答。实际上,我意识到在一台主机上扩展多个容器似乎是无用的(即使我限制每个容器的资源,我认为这不是正确的扩展方式),所以我决定尝试在多台主机上部署kubernetes
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