如何在不重新启动容器的情况下重新缩放已经运行的docker compose



我正在运行一个包含两个服务的docker-compose堆栈,我想多次缩放其中一个服务。

这是我的docker compose.yaml文件:

version: '3.8'
services:
  manager:
    hostname: manager
    build:
      context: .
      dockerfile: manager.ubuntu.Dockerfile  
    restart: always
    ports:
      - '7777:80'
    volumes:
      - './src:/src'
      - './app:/var/www/html'
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker    
    tty: true
    networks:
      - my-net      
  worker:
    build:
      context: .
      dockerfile: worker.dind.Dockerfile  
    restart: always
    privileged: true    
    tty: true
    networks:
      - my-net            
networks:
  my-net:

我是这样缩放的:

docker-compose -p stack up --scale worker=3 --build

这是第一个结果:

...   NAMES
...   stack_manager_1
...   stack_worker_1
...   stack_worker_2
...   stack_worker_3

现在我有3个工人和1个经理在运行,我有时想重新缩放以添加例如2个工人,而不影响其他容器的当前状态。

重新缩放后的预期结果

...   NAMES
...   stack_manager_1
...   stack_worker_1
...   stack_worker_2
...   stack_worker_3
...   stack_worker_4
...   stack_worker_5

有没有任何可能的方法可以做到I don't want any container to be stopped or restarted,但只需向堆栈中添加额外的容器?

您可以使用&quot--没有重新创建";类似:

docker-compose -up -d --scale worker=3 --no-recreate

结账:

码头文件

最新更新