docker-compose down with a non-default yml file name

Ven*_*eki 3 docker-compose

我有一个非默认的docker-compose文件名(docker-compose-test.yml)。其中仅定义了一项服务。

我正在使用“ docker-compose -f docker-compose-test.yml up”启动容器

我正在尝试停止使用docker-compose启动上面启动的容器,但是它不起作用。

我遇到错误了,

ERROR:
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml, docker-compose.yaml
Run Code Online (Sandbox Code Playgroud)

我了解它正在寻找默认的docker compose文件名。有没有办法在docker-compose down期间指定自定义配置文件名?

PHZ*_*zon 43

请注意,docker-compose 的语法是 -f 需要位于up/down之前,之后是 -d:

docker-compose -f docker-compose.prod.yml up -d
Run Code Online (Sandbox Code Playgroud)

如果你把 -f 放在 up/down 之后,它不起作用,如果你把 -d 放在 up/down 之前,你会得到帮助显示或错误。Down 当然可以在没有 -d 的情况下工作:

docker-compose -f docker-compose.prod.yml down
Run Code Online (Sandbox Code Playgroud)


小智 20

您可以创建一个 .env 文件并添加以下内容:

COMPOSE_FILE=docker-compose-test.yml
Run Code Online (Sandbox Code Playgroud)


Mar*_*uri 13

您应该docker-compose down使用与启动容器时相同的标志来运行命令。

docker-compose -f docker-compose-test.yml down

  • aaaand 这应该在 Docker 官方文档中,但仍然没有。疯狂的! (15认同)

小智 9

如果您使用多个文件进行 docker-compose 并使用自定义名称,您应该这样写:

docker-compose -f docker-compose.yml -f docker-compose.override.yml -p custom_name down
Run Code Online (Sandbox Code Playgroud)


Gan*_*nnu 5

对于 2023 年搜索 docker compose V2(新的 docker compose 而不是 docker-compose)的人

为 docker compose v1 和 v2 指定非默认/标准 docker compose 文件是相同的。

对于 docker compose V1 (docker-compose)

# for stopping
docker-compose -f docker-compose.yml down

# for creating
docker-compose -f docker-compose.yml up

Run Code Online (Sandbox Code Playgroud)

对于 docker compose V2(docker compose)

# for stopping
docker compose -f docker-compose.yml down

# for creating
docker compose -f docker-compose.yml up

Run Code Online (Sandbox Code Playgroud)

Docker 撰写参考