CapRover

磁盘清理


Docker 会以不同方式占用磁盘:

Docker 镜像

镜像的占用:镜像是压缩文件,包含你构建后的源码以及部署到服务器上的产物。每次部署代码的新版本时,Docker 都会为新版本构建一个新镜像,并默认保留旧镜像。如果你想清理服务器上所有“未使用”的镜像,运行:

docker container prune --force
docker image prune --all

重要提示:只有在你已经配置了 Docker registry(本地或远程)时才建议使用这种方式。原因是 Docker 存在一个已知 bug,更多细节请看 这里,以及相关的 Docker Issue

Docker 卷(Volumes)

Volumes 也就是“持久化目录”。当你创建一个带持久化数据的应用(例如数据库)时,会为它分配一个持久化目录。当你更换持久化目录或删除应用后,旧的 volumes 往往就不再需要了。不过清理孤儿卷(orphaned volumes)有点棘手:如果某个应用目前正在崩溃且未运行,但它仍需要的 volume,Docker 仍可能把它视为“孤儿卷”:( 因此,为了安全地清理孤儿卷,先通过以下命令确认所有服务都在运行:

docker service ls

在 REPLICAS 一列下,你应该看到类似 1/12/2 的状态。如果你看到某个服务没有正常运行,就不要继续操作。否则就可以执行以下命令清理孤儿卷:

docker volume prune

另外一种方式是先列出所有 volumes,再只删除你不需要的那些:

docker volume ls                          # lists all volumes
docker volume rm volume-name-goes-here    # removes a specific volume