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

如何修改docker清理命令使其仅作用于当前目录的docker-compose项目

Docker跨项目资源影响问题修复方案

问题根因

原构建流程第一条命令会全局列出所有容器并全部停止,随后执行全局资源清理,会将其他项目已停止的容器关联的卷、镜像全部销毁,因此影响第一个项目的运行。

修改方案

将原第一条全局操作命令替换为仅作用于当前目录Docker Compose项目的命令,修改后的完整构建流程如下:

  • 第一步(替换原有全局命令):docker-compose -f docker-compose.local.yml down --volumes --rmi all --remove-orphans
    该命令参数说明:
    • --volumes:仅清理当前项目关联的所有卷资源
    • --rmi all:仅清理当前项目用到的所有镜像
    • --remove-orphans:清理当前Compose配置中未定义的冗余历史容器
  • 第二步:docker stack rm up
  • 第三步:docker-compose -f docker-compose.local.yml build
  • 第四步:docker stack deploy up --compose-file docker-compose.local.yml

可选适配方案(针对Swarm Stack场景)

如果需要基于Stack标签过滤操作,也可以使用以下命令作为第一步,只会操作命名为up的Stack对应的资源:

docker container stop $(docker container ls -a --filter "label=com.docker.stack.namespace=up" -q) && docker system prune -a -f --volumes --filter "label=com.docker.stack.namespace=up"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:24:04