如何在没有配置文件的情况下执行 docker-compose down 操作?

Xav*_*ero 11 configuration configuration-management shutdown docker docker-compose

当您这样做时docker-compose up,它是基于docker-compose.yml文件的。

这通常会启动一个网络,构建并运行多个服务。如果您使用该标志执行 up 操作-ddocker-compose客户端将分离并让服务器单独操作。

如果执行 a docker-compose down,它会关闭正在运行的容器,并删除相应的网络。

但是...如果之后文件消失了怎么up.yml

问题

docker stop您是否必须通过手动查找该项目的服务等等来docker rm手动关闭docker network rm

或者docker-compose足够智能,可以用标签标记所有东西(容器、网络等),这样你就可以告诉它一些东西,这样docker-compose down project-name它就不会在.yml(现在不在文件系统中)文件中查找,而是检查正在运行的实例和网?

小智 5

AFAIK 如果没有docker-compose down相应的docker-compose.yml.

但是,您对标记的想法也与现实相去不远:调用 时docker-compose updocker-compose会在它创建的所有内容前面添加撰写文件的目录名前缀。即使没有相应的文件,这也允许识别属于在一起的容器集docker-compose.yml。我经常最终将其变体写入我的交互式 shell 中:

docker rm $(docker ps -a | grep ... | cut -c -16)
Run Code Online (Sandbox Code Playgroud)

当然,如果要“正确”编写脚本,则可以使用 Docker 的能力来格式化和搜索其输出,并正确依赖名称或 ID,而不仅仅是 ID 中的前 16 个字符。此外,此操作是幂等的,因为如果没有匹配的grep.

然后跟进docker network rm ...docker volume rm ...清理剩余部分。