如何清理docker缓存?
在 Docker 中,缓存可能会占用大量空间,尤其是在构建镜像和运行容器时。清理 Docker 缓存可以帮助释放存储空间,以下是一些常用的清理方法:
1. 清理未使用的镜像、容器、卷和网络
Docker 提供了 docker system prune
命令来清理未使用的资源。这个命令会删除:
- 停止的容器
- 未被使用的网络
- 未被使用的镜像(dangling images)
- 未被使用的卷
执行以下命令:
docker system prune
如果想要更彻底地清理,可以加上 -a
选项,这样会删除所有未被使用的镜像,而不仅仅是“悬空镜像”(dangling images):
docker system prune -a
警告:这个命令会删除所有未被使用的资源,确保你不再需要它们。
2. 删除未使用的镜像
如果你只想删除未使用的镜像,可以运行以下命令:
docker image prune
同样,如果你想删除所有未使用的镜像(包括“悬空镜像”),可以加上 -a
选项:
docker image prune -a
3. 删除未使用的容器
如果你想删除所有已停止的容器,可以使用以下命令:
docker container prune
这会删除所有停止的容器,但保留正在运行的容器。
4. 删除未使用的卷
Docker 卷存储了容器的数据,可能在某些情况下不再需要。如果你希望删除所有未使用的卷,可以使用:
docker volume prune
注意:在删除卷之前,确保你不再需要其中存储的数据,因为删除卷是不可恢复的。
5. 删除未使用的网络
如果有多余的网络资源,可以清理它们:
docker network prune
6. 删除所有无用的资源(全面清理)
如果你希望彻底清理 Docker 系统中的所有无用资源,可以执行以下命令:
docker system prune -a --volumes
这个命令会清理:
- 停止的容器
- 未使用的网络
- 未使用的镜像
- 未使用的卷
注意:加上 --volumes
参数会删除所有未使用的卷,确保不再需要这些数据后再执行。
7. 删除特定的镜像、容器或卷
你还可以手动删除指定的镜像、容器或卷:
删除容器:
docker rm <container_id>
删除镜像:
docker rmi <image_id>
删除卷:
docker volume rm <volume_name>
8. 清理 Docker 镜像构建缓存
如果你在构建 Docker 镜像时想要清理构建缓存,可以在构建镜像时使用 --no-cache
参数:
docker build --no-cache -t <image_name> .
这个命令会忽略缓存,并且强制从头开始构建镜像。
8. 使用 docker builder prune 清理构建缓存
docker builder prune
通过定期清理 Docker 缓存,可以有效释放存储空间,特别是在持续开发和测试过程中。