使用Docker Compose --scale选项不中断运行实例新增实例方法
Docker Compose 动态新增实例不中断原有服务的方法
直接执行以下命令就能实现不中断现有4个实例、新增6个最终达到10个的效果:
docker-compose up --detach --scale app=10 app
为什么之前的操作会触发重建?
你之前执行docker-compose up --detach --scale app=6 app时出现原有实例被重建,大概率是因为当前Compose文件的配置和已运行容器的配置不一致(比如镜像版本更新、环境变量修改等),此时Docker Compose会尝试用新配置重建容器。但如果只是单纯扩容到更大的实例数,直接指定最终目标数量,它只会新增缺少的容器,不会改动已经在运行的实例。
额外保障:彻底避免现有容器被重建
如果想完全杜绝现有容器被意外重建的可能,可以加上--no-recreate参数:
docker-compose up --detach --no-recreate --scale app=10 app
这个参数会强制保留所有已运行的容器,仅创建新实例来补足到目标数量。
另外,旧版Docker Compose也支持docker-compose scale app=10命令,不过目前官方更推荐使用up --scale的方式,功能更统一规范。
内容的提问来源于stack exchange,提问作者swiss_knight
相关产品推荐
相关产品推荐

