如果需要,Docker Desktop 支持将它使用的 VM 映像移动到另一个驱动器上。在我的 Mac Mini (2018) 上,我已将其移至外部 SSD,以便将其扩大到超出内部存储所允许的范围。
外部 SSD 被命名为“Extra Space”,当我也尝试将 SSD 用于其他非 Docker 开发并发现我使用的一些 Ruby Gems 在路径名称中存在空格问题时,这(具有讽刺意味)成为了一个问题。
我决定必须将驱动器重命名为“ExtraSpace”(没有“额外”空间),但是 Docker 无法找到它的 VM 映像。我无法使用内置的位置选择器(“首选项”->“资源”->“高级”->“磁盘映像位置”),因为该工具假定它将图像从一个位置移动到另一个位置,但在我的情况是图像没有被移动,只有现有图像的路径正在改变。
我查看了 Docker 中的配置,~/Library/Containers/com.docker.desktop/
并在Library/Containers/com.docker.docker/Data/vms/0/hyperkit.json
. 我尝试在那里更改它,但 Docker Desktop 无法启动。
在错误日志中,我发现了很多这样的消息:
time="2021-10-31T15:06:43-04:00" level=error msg="(5487d9bc) 4ecbf40e-BackendAPI S->C f68f0c84-DriverCMD GET /vm/disk (925.402µs): mkdir /Volumes/Extra Space: permission denied"
common/cmd/com.docker.backend/internal/handlers.(*VMInitHandler).VMDiskInfo(0x58c13b8, {0x58b94a0, 0xc0001d82a0})
common/cmd/com.docker.backend/internal/handlers/vminit.go:39 +0x42
为什么 Docker Desktop 不按照 VM 配置文件查找镜像的位置?还有其他地方我必须改变它吗?