首页 > 解决方案 > 'docker-compose up' 表示删除后图像已经存在

问题描述

我试图从一个干净的石板开始,使用“docker-compose up”拉下并运行的图像。所以我尝试运行这些 docker 命令来清理:

docker rmi $(docker images -aq)
docker rm $(docker ps -aq) -f
docker system prune --all

但是当我运行 docker-compose -f my-yaml-file.yaml up 时,控制台显示:

Pulling shell <repo info>
1.0: Pulling from <repo info>...
ae79f2514705: Already exists
5ad56d5fc149: Already exists
170e558760e8: Already exists
395460e233f5: Already exists
6f01dc62e444: Already exists
1b19c959c7bd: Pull complete

我省略了上面的私人回购信息,但想知道为什么说这些哈希(或任何它们)已经存在。我尝试使用命令删除所有内容,但无论我尝试什么,它总是检测到某些东西存在。它检测到什么以及如何删除它们?我试过重启 docker、重启等。结果总是一样的。

标签: macosdockerdocker-composedocker-for-mac

解决方案


“问题”在 docker 的缓存中。您想要做的是在您的命令中添加一个--no-cache标志,有关更多详细信息,请参阅docsdocker compose build

我还发现了一个 github问题,要求提供该--no-cache选项(已经存在),但在评论中您可以看到干净重建的示例,其中有人说--force-recreate不需要该标志。

 docker-compose rm --all &&
 docker-compose pull &&
 docker-compose build --no-cache &&
 docker-compose up -d --force-recreate &&

我希望这有帮助!


推荐阅读