You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose创建多个同服务Redis容器执行scale命令报错如何解决

问题解决方案

问题根源

报错的核心原因是redis服务配置了固定的container_name和hostname,Docker要求所有运行的容器名称全局唯一,执行--scale扩容命令时,多个实例会尝试使用同一个固定名称,因此触发冲突。

操作步骤

1. 修改docker-compose.yml配置

删除redis服务下固定的container_name、hostname配置,修改后的完整配置参考如下:

version: '3'
services:
  redis:
    image: redis

  redis-commander:
    container_name: redis-dbms
    hostname: redis-commander
    image: rediscommander/redis-commander:latest
    restart: always
    environment:
    # 若需要Redis Commander识别所有扩容的Redis实例,使用如下配置
    - REDIS_HOSTS=node1:redis_1:6379,node2:redis_2:6379,node3:redis_3:6379
    ports:
    - "8081:8081"

2. 清理历史冲突容器

执行以下命令删除之前已经创建的重名Redis容器,避免后续操作依然报错:

docker rm -f redis

3. 执行扩容命令

重新执行scale命令即可成功创建3个Redis实例:

docker-compose up --scale redis=3 -d

补充说明

  • 删除固定容器名后,Docker Compose会自动为每个Redis实例生成唯一名称,格式为[当前项目名]_redis_[实例序号],无需手动配置
  • 如果需要给Redis配置端口映射,不要写固定映射规则如"6379:6379",仅需写"6379"即可,Docker会自动为每个实例分配随机宿主机端口,避免端口冲突
  • 扩容后你可以执行docker-compose ps查看所有运行中的Redis实例状态

内容的提问来源于stack exchange,提问作者Mario Almaguer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 22:06:03