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

如何自定义docker-compose容器命名规则,将短横线改为下划线?

这个命名分隔符差异和操作系统无关,是Docker Compose版本迭代导致的默认行为变化:

  • 旧版Docker Compose V1(独立命令docker-compose,带中划线)默认使用下划线作为容器名分隔符,规则为<project>_<service>_<replica>
  • 新版Docker Compose V2(集成为Docker CLI子命令docker compose,不带中划线)默认改用短横线作为分隔符,规则为<project>-<service>-<replica>,Windows端Docker Desktop默认启用了V2版本,因此出现命名变化。

命名差异示例

你可以通过以下任意一种方式改回下划线命名规则:

方法1:单次执行兼容模式

执行compose命令时添加--compatibility参数即可临时启用V1兼容逻辑,自动使用下划线命名:

docker compose --compatibility up -d

方法2:全局切换回Compose V1

如果需要长期沿用旧版命名规则,可以直接关闭Docker Desktop的V2开关:

  1. 打开Docker Desktop设置界面
  2. 找到「开发中功能/Features in development」选项栏
  3. 取消勾选Use the new Compose V2,保存设置后重启Docker即可

方法3:通过环境变量全局开启兼容模式

不想切换回V1的情况下,可以配置COMPOSE_COMPATIBILITY环境变量为true,所有compose命令都会自动沿用V1命名规则:

  • Windows PowerShell设置:$env:COMPOSE_COMPATIBILITY="true"
  • Windows CMD设置:set COMPOSE_COMPATIBILITY=true
  • Linux/macOS设置:export COMPOSE_COMPATIBILITY=true

方法4:手动指定固定容器名

如果只需要特定服务使用固定名称,可以直接在docker-compose.yml中对应服务下配置container_name参数,完全不受默认命名规则影响:

services:
  nginx:
    image: nginx:alpine
    container_name: myproject_nginx_1
    ports:
      - "80:80"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:27:01