使用docker-compose时如何修复容器的basename?

use*_*521 12 docker docker-compose

似乎docker-compose将当前文件夹名称添加为每个创建的容器的基本名称.所以对于以下目录结构:

/myproj/docker-compose.yml
Run Code Online (Sandbox Code Playgroud)

和docker-compose.yml内容:

web: ...
worker: ...
Run Code Online (Sandbox Code Playgroud)

docker-compose将创建以下容器:

myproj_web_1
myproj_worker_1
Run Code Online (Sandbox Code Playgroud)

我不介意后缀(_X)但是我想将myproj"修复"到像"always_same"这样的常量,所以我可以移动docker-compose.yml文件并且仍然有相同名称的容器.

我怎么能这样做?

Jan*_*nis 14

有两种方法可以做到这一点.

使用设置环境变量

export COMPOSE_PROJECT_NAME=foo
Run Code Online (Sandbox Code Playgroud)

或者通过-p开关启动堆栈

docker-compose -p foo build
docker-compose -p foo up
Run Code Online (Sandbox Code Playgroud)

  • 我想知道为什么不能在yml文件中设置项目名称 - 我想这将是最方便的... (5认同)
  • 将`COMPOSE_PROJECT_NAME = foo`放在`.env`文件中,你很高兴. (2认同)
  • 如果你不想要下划线而是一个破折号怎么办? (2认同)