Масштабирование нескольких контейнеров службы на одном хосте - PullRequest
0 голосов
/ 25 марта 2019

Я масштабирую несколько контейнеров службы на одном хосте Linux с помощью команды "docker-compose up --scale". Однако каждый контейнер может использовать все ресурсы (ЦП и ОЗУ) хоста. Кажется, бесполезно так масштабироваться.

Таким образом, я пытаюсь ограничить доступную ЦП и ОЗУ для каждого контейнера (в настоящее время я использую docker-compose version 2) с помощью тегов "cpus" и "mem_limit" в файле docker-compose.yml.

Это мой файл 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"

Но я не знаю, полезно ли масштабировать несколько контейнеров службы на одном хосте? Кроме того, есть ли способы автоматически масштабировать эту услугу (масштабирование по требованию)? Спасибо,

1 Ответ

0 голосов
/ 26 марта 2019
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

Вы можете масштабировать приложение, изменив реплики до значения 6 в docker-compose.yml, сохранив изменение и повторно запустив

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 /

...