目录
[1. 清理未使用的 Docker 镜像、容器和卷](#1. 清理未使用的 Docker 镜像、容器和卷)
[2. 查看 Docker 使用的磁盘空间](#2. 查看 Docker 使用的磁盘空间)
[3. 调整 Docker 的存储位置](#3. 调整 Docker 的存储位置)
[4. 增加磁盘空间](#4. 增加磁盘空间)
[5. 调整 Docker Desktop 配置](#5. 调整 Docker Desktop 配置)
[6. 使用 Docker 清理工具(例如 Docker Compose)](#6. 使用 Docker 清理工具(例如 Docker Compose))
一、背景描述
MAC电脑是8+256G,磁盘空间比较少,最近老是爆磁盘提示,于是通过Tencent Lemon做磁盘分析,发现Docker的Containers目录占用磁盘空间巨大,因此需要修改Docker Desktop的设置调小磁盘占用量。
二、解决办法
三、清理效果
原本只剩12G磁盘,清理之后剩余47G,瞬间舒服了
四、理论参考
在 Mac 上安装 Docker Desktop 后出现磁盘空间不足的问题是常见的,尤其是在使用 Docker 容器和镜像时。Docker 默认会在本地磁盘上存储大量数据,包括镜像、容器、卷等。这些数据可能会迅速占用大量磁盘空间。
解决方法
下面是一些常见的解决方法,可以帮助你恢复磁盘空间并管理 Docker 使用的存储:
1. 清理未使用的 Docker 镜像、容器和卷
Docker 使用的磁盘空间很大一部分来自未使用的镜像、容器和卷。可以通过以下命令清理它们:
-
删除停止的容器:
docker container prune
这个命令会删除所有停止的容器。
-
删除未使用的镜像:
docker image prune
这个命令会删除所有未使用的镜像。
-
删除所有未使用的容器、镜像和网络:
docker system prune
如果你想要删除所有未使用的容器、镜像、网络以及构建缓存,可以使用
-a
标志:
docker system prune -a
-
删除未使用的卷: 卷存储 Docker 容器的数据,可以使用以下命令清理未使用的卷:
docker volume prune
2. 查看 Docker 使用的磁盘空间
可以通过以下命令查看 Docker 占用的磁盘空间,并判断哪些项目占用了最多的空间:
docker system df
这个命令会显示有关镜像、容器、卷和缓存的详细磁盘空间使用情况。
3. 调整 Docker 的存储位置
Docker 默认将镜像、容器、卷等数据存储在 /var/lib/docker
目录中。如果磁盘空间不足,可以考虑将 Docker 数据目录移动到另一个磁盘或分区。
-
创建新的存储目录(假设将数据移到
/mnt/docker
):sudo mkdir /mnt/docker
-
停止 Docker 服务:
sudo systemctl stop docker
-
将
/var/lib/docker
目录的内容移动到新的目录:sudo rsync -aP /var/lib/docker/ /mnt/docker
-
删除原目录中的数据(确保数据已经迁移完成):
sudo rm -rf /var/lib/docker
-
创建符号链接:
sudo ln -s /mnt/docker /var/lib/docker
-
重启 Docker 服务:
sudo systemctl start docker
这将使 Docker 使用新的存储位置,从而避免了磁盘空间不足的问题。
4. 增加磁盘空间
如果你的磁盘空间本身较小,考虑增加磁盘容量:
- 增加 Mac 硬盘的存储空间(如果是外部硬盘或 SSD)。
- 清理其他不必要的文件和应用程序,释放出更多空间,特别是清理 Mac 上的旧文件和应用程序。
5. 调整 Docker Desktop 配置
Docker Desktop 为了优化性能可能会设置一些默认的资源限制(如 CPU、内存、磁盘空间等)。你可以调整 Docker Desktop 的配置,以减少磁盘空间的使用。
- 打开 Docker Desktop,点击右上角的齿轮图标,进入设置界面。
- 选择 Resources(资源),在这里可以调整 Docker 使用的磁盘大小。
- 可以通过 Disk image location 来更改 Docker 镜像文件的存储位置。
6. 使用 Docker 清理工具(例如 Docker Compose)
如果你使用 Docker Compose 部署多个容器,可以通过以下命令来清理容器和镜像:
-
停止并删除所有容器:
docker-compose down
-
删除 Docker Compose 使用的镜像和卷:
docker-compose down --volumes --rmi all
这样可以删除所有与 Compose 项目相关的资源,释放磁盘空间。
通过这些步骤,你应该能够释放一些磁盘空间并减少 Docker 占用的存储资源。特别是清理不再使用的镜像和容器,是一种有效的方法来减少 Docker 对磁盘空间的占用。