本地Docker容器命名变为连字符,如何恢复原下划线分隔规则?
Docker Compose 容器命名分隔符恢复下划线规则方案
该变动是Docker Compose V2版本的默认行为变更:官方为了符合DNS命名规范,将容器、网络、卷等资源的默认名称分隔符从旧版V1的下划线
_改为连字符-,属于版本迭代的预设规则调整。
方案1:单次执行临时生效
运行compose命令时追加--compatibility兼容性参数,即可自动沿用旧版下划线命名规则,示例命令:
docker compose --compatibility up -d
方案2:单项目维度永久生效
在对应Docker Compose项目的.env配置文件中添加如下变量:
COMPOSE_COMPATIBILITY=true
配置后仅当前项目的所有compose操作会默认使用下划线分隔的命名规则,不影响其他项目。
方案3:全局维度永久生效
根据运行环境选择对应配置方式:
- Windows/macOS(Docker Desktop):
打开Docker Desktop设置 → 选择「Compose」分类 → 勾选「Use legacy Compose separator (underscore)」选项,保存后重启Docker Desktop即可生效。 - Linux 环境:
编辑当前用户的Docker配置文件~/.docker/config.json,添加如下配置:
也可以将环境变量写入Shell配置文件(如{ "compose": { "legacySeparator": true } }~/.bashrc、~/.zshrc)实现全局生效:echo 'export COMPOSE_COMPATIBILITY=true' >> ~/.bashrc source ~/.bashrc
注:不建议直接关闭Compose V2切换回已停止维护的V1版本,使用兼容性参数可同时兼顾旧命名规则和新版功能支持。
内容的提问来源于stack exchange,提问作者Zeno Popovici
相关产品推荐
相关产品推荐

