执行Docker清理命令后仍使用缓存,如何彻底清除缓存?
彻底清除Docker构建缓存的方法
1. 单次构建直接跳过缓存
直接给docker build加--no-cache参数,不管现有缓存状态,所有构建步骤都会重新执行,这是最快的临时解决办法:
docker build --no-cache # 加上你的其他构建参数
2. 清理Buildx构建器缓存
如果使用了Buildx(当前Docker默认可能开启该功能),普通的docker builder prune可能无法覆盖对应缓存。先查看系统中的构建器列表:
docker buildx ls
再针对性清理指定构建器的缓存:
docker buildx prune --all --force --builder <构建器名称>
嫌麻烦的话可以直接清理所有Buildx缓存:
docker buildx prune --all --force
3. 手动删除缓存目录(Linux/macOS)
Docker的构建缓存存放在固定目录,先停止Docker服务再直接删除即可:
- Linux:
/var/lib/docker/buildkit(Buildx缓存)或/var/lib/docker/overlay2(传统构建缓存) - macOS(Docker Desktop):
~/Library/Containers/com.docker.docker/Data/vms/0/data/docker/buildkit
操作命令参考:
# Linux sudo systemctl stop docker sudo rm -rf /var/lib/docker/buildkit sudo systemctl start docker # macOS killall Docker rm -rf ~/Library/Containers/com.docker.docker/Data/vms/0/data/docker/buildkit open /Applications/Docker.app
4. Docker Desktop重置(Windows/macOS)
使用Docker Desktop的话,直接通过UI重置更省心:
- 打开Docker Desktop设置
- 进入
Troubleshoot页面 - 点击
Reset to factory defaults,该操作会清除所有镜像、容器、缓存及配置
你之前执行的docker system prune --all --volumes主要清理闲置的镜像、容器、卷等资源,docker builder prune默认仅清理当前构建器的缓存,但如果使用了多构建器实例或Buildx,就可能无法覆盖到目标缓存。单次构建用--no-cache最便捷,要彻底清除所有缓存可选择后面几种方法。
内容的提问来源于stack exchange,提问作者John Graham
相关产品推荐
相关产品推荐

