专业的编程技术博客社区

网站首页 > 博客文章 正文

MacOS Docker运行磁盘空间管理与不足解决方案

baijin 2025-04-27 12:20:48 博客文章 4 ℃ 0 评论


在 macOS 上使用 Docker Desktop 时,Docker.raw 文件是 Docker 虚拟机(基于 HyperKit)的虚拟磁盘镜像文件,用于存储 Docker 引擎运行所需的所有数据,包括容器、镜像、卷和配置等。

1.Docker.raw文件的默认路径

在 macOS 系统中,Docker.raw 通常位于以下路径:

~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw
  • 路径解析
    • ~:当前用户的家目录(如 /Users/你的用户名)。
    • Library/Containers:macOS 应用容器化数据的存储位置。
    • com.docker.docker:Docker Desktop 应用的唯一标识。
    • vms/0/data:虚拟机相关数据的存储目录,0 表示第一个虚拟机实例。

2.Docker.raw文件的作用

该文件是 Docker 虚拟机(Linux VM)的虚拟硬盘,主要包含以下内容:

  • 镜像(Images):所有通过 docker pull 拉取的容器镜像。
  • 容器(Containers):正在运行或已停止的容器文件系统。
  • 卷(Volumes):持久化存储的 Docker 卷数据。
  • 网络配置(Network Configs):Docker 网络设置和虚拟网桥。
  • 日志和元数据:Docker 引擎的日志及运行时元数据。

3. 验证路径的步骤

方法 1:通过 Finder 手动导航

  • 打开 Finder,按下 Command + Shift + G。
  • 输入路径:
~/Library/Containers/com.docker.docker/Data/vms/0/data/
  • 检查是否存在 Docker.raw 文件。

方法 2:使用终端命令

# 直接列出文件
ls -l ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

# 如果路径存在,输出类似:
# -rw-r--r--  1 user  staff  64G Aug 10 12:34 /Users/user/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

4. 管理Docker.raw文件

查看磁盘占用

# 查看文件大小
du -sh ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

# 示例输出:
# 64G    /Users/user/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

清理磁盘空间

  • 删除无用镜像和容器
docker system prune -a --volumes
  • 重置 Docker Desktop

打开 Docker Desktop,进入 Preferences > Troubleshoot > Reset to factory defaults

  • 注意:这会删除所有镜像、容器和卷!

调整虚拟磁盘大小

默认情况下,Docker.raw 会动态扩展(最大 64GB),如需手动调整:

  • 停止 Docker Desktop。
  • 编辑虚拟机配置(需谨慎操作):
# 备份原文件
cp ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw ~/Docker.raw.bak

# 调整大小(例如扩展到 100GB)
qemu-img resize ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw 100G
  • 重启 Docker Desktop。

5. 常见问题

Q1:Docker.raw文件过大怎么办?

  • 原因:长期使用后,未清理的镜像、容器和卷会占用大量空间。
  • 解决方案
    • 定期运行 docker system prune。
    • 在 Docker Desktop 中设置资源限制(Preferences > Resources > Advanced)。

Q2:如何迁移Docker.raw文件?

  1. 停止 Docker Desktop。
  2. 复制整个 vms/0/data 目录到新位置。
  3. 创建符号链接:
mv ~/Library/Containers/com.docker.docker/Data/vms/0/data /new/path/data
ln -s /new/path/data ~/Library/Containers/com.docker.docker/Data/vms/0/data
  1. 重启 Docker Desktop。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表