Docker 构建缓存不断增长

Arc*_*yno 5 caching docker dockerfile

在我的持续交付过程中,我每天晚上都会部署一个包含应用程序最新版本的容器。但随着每次迭代,docker 构建缓存都在增长......以下是每天晚上应用的命令:

docker rm $(docker stop $(docker ps -a -q --filter ancestor=myApplication --format="{{.ID}}")) 
docker rmi $(docker images -f "dangling=true" -q)
docker build -t myApplication . --rm
docker run -d -p 9090:8080 -v C:\localFolder:/usr/local/mountedFolder myApplication
Run Code Online (Sandbox Code Playgroud)

当我检查时docker system df,我发现构建缓存随着每次构建而增长。有没有办法确保删除未使用的缓存?

BMi*_*tch 9

构建缓存是 buildkit 的一部分,在 docker 中作为图像或容器不可见。Buildkit本身直接与containerd对话,并且只将结果输出到docker。您可以使用以下方法修剪缓存:

docker builder prune
Run Code Online (Sandbox Code Playgroud)

并且有一些标志可以根据大小和年龄来保留存储。您可以在 docker 文档中查看更多信息:https://docs.docker.com/engine/reference/commandline/builder_prune/

  • @Arcyno `docker builder prune` 仅使用您指定的选项来修剪构建缓存。`docker system prune -a` 会清除运行命令时列出的所有内容,其中之一就是构建缓存。 (2认同)