0

如果需要,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 配置文件查找镜像的位置?还有其他地方我必须改变它吗?

4

1 回答 1

0

经过大量搜索,我发现以下需要使用新路径更新的附加文件:

  • ~/Library/Preferences/com.electron.docker-frontend.plist
  • ~/Library/Preferences/com.electron.dockerdesktop.plist
  • ~/Library/Group Containers/group.com.docker/settings.json

一旦我用新路径更新了所有这些文件,Docker Desktop 就能够正确启动。

于 2021-10-31T20:09:27.283 回答