在 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文件?
- 停止 Docker Desktop。
- 复制整个 vms/0/data 目录到新位置。
- 创建符号链接:
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
- 重启 Docker Desktop。