【问题标题】:Change Docker native images location on Windows 10 Pro在 Windows 10 Pro 上更改 Docker 本机映像位置
【发布时间】:2021-12-26 05:02:20
【问题描述】:

这不是重复 Change Docker machine location - Windows

我在启用 Hyper-V 的 Windows 10 Pro 上使用 docker native 版本 1.12.1-stable(内部版本:7135)。 所以 docker 不 与 VirtualBox 一起运行,我也没有文件夹 C:\Users\username\.docker

我想将 docker 的图像、缓存等移动到我的辅助驱动器 D:\

我想我应该编辑 Docker Daemon 配置。

我尝试添加"graph": "/D/docker"。 Docker 正确启动,但由于错误无法拉取任何图像

打开/D/docker/tmp/GetImageBlob135686954:没有这样的文件或目录

如何告诉 docker 使用另一个路径来存储它的图像等?

【问题讨论】:

标签: docker windows-10


【解决方案1】:

在我的情况下(Windows10 with Docker Desktop)以上解决方案都没有帮助我。我找到了解决方案,运行此命令。此命令将 docker 目录更改为驱动器 D:(不要忘记退出 docker 桌面)

wsl --shutdown
wsl --export docker-desktop-data docker-desktop-data.tar
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data D:\docker-new-repo\ docker-desktop-data.tar --version 2

现在您可以删除 .tar 文件

【讨论】:

  • 感谢您为我指明正确的方向。为我工作。但它需要我从dev.to/kimcuonthenet/… 获得的更多步骤
  • 我认为你最后缺少的 2。 “--版本 2”
  • 这(在@Milind 的链接中)有效。谢谢。我想我可以在之后删除 tar 文件?
  • 谢谢。它确实在新位置设置了发行版。然而,旧的发行版“ext4.vhdx”仍在不断更新,大小不断增加。我们怎样才能阻止这种情况?
  • Docker Desktop 有 3 种模式:带有 WSL 的 Linux 容器、带有 Hyper-V 的 Linux 容器和 Windows 容器。此解决方案适用于配置由 WSL 管理的 带有 WSL 的 Linux 容器。 see information from Docker Docs
【解决方案2】:

Docker 版本:2.2.0.3 (42716)

  1. 右键单击桌面托盘上的泊坞窗图标

  1. 点击设置

3 单击左侧菜单中的资源,然后在磁盘映像位置下单击浏览并更改位置

  1. 点击应用并重启

【讨论】:

  • docker desktop 2.3.0.2的屏幕没有这些配置
  • 还以为屏幕不见了,但是向下滚动有帮助。根据使用的主题,滚动窗格可能很难看到...
  • 您应该在“设置”->“常规”中禁用“使用基于 WSL 2 的引擎”以查看高级选项。
  • 这里似乎没有人意识到 Docker Desktop for Windows 有两种模式:Linux Containers 和 Windows Containers。 (模式在托盘图标上下文菜单中设置。)如果您处于 Windows 容器模式,则不存在磁盘映像位置选项。
  • 我不在 Windows 容器中(因为它需要 Windows Pro 或 Enterprise Build 才能启用它),但我的 docker 也没有这些配置。 ps:docker版本:2.5.0.0
【解决方案3】:

我找到了解决方案here

Docker 本机,在 Windows 上,在 Hyper-V 虚拟机中运行。

移动现有的 docker 虚拟机

我必须将 docker 使用的虚拟机移动到所需的位置。 我使用 Hyper-V 管理器 的 GUI 完成了这项工作。 用于 docker 的 VM 称为 MobyLinuxVM。

  • 右击 MobyLinuxVM
  • 选择移动
  • 选择所需位置

设置未来 Hyper-V 虚拟机的位置

为了确保 Hyper-V 的未来虚拟机将存储在我的辅助驱动器上, 我关注了those instructions

在 powershell 终端中(目标文件夹必须存在)

SET-VMHOST –computername <computer> –virtualharddiskpath 'D:\Hyper-V_Virtual-Hard_Disks' SET-VMHOST –computername <computer> –virtualmachinepath 'D:\Hyper-V_VMs'

【讨论】:

  • 每当我重新启动或重新启动 Docker 时,它都会回到原始目录
  • 移动 vm 后重启 docker 时,硬盘位置设置回默认值,以创建新的空虚拟硬盘结束。显然,所有现有的码头工人的东西都消失了。我的解决方法是在默认位置创建一个指向被驱逐者的符号链接。
【解决方案4】:

在 2020 年为“在 Windows 10 Pro 上更改 Docker 本机映像位置”是,

  1. 退出 docker 桌面
  2. 打开/编辑配置文件“C:\ProgramData\Docker\config\daemon.json”
  3. 添加设置“data-root”:“D:\Virtual Machines\Docker”
  4. 现在启动 docker 桌面
  5. 运行命令“docker info”查看设置“Docker Root Dir: D:\Virtual Machines\Docker”
  6. 拉取 docker 镜像,例如:docker pull mongo
  7. 您可以在“D:\Virtual Machines\Docker\windowsfilter”文件夹中找到下载的镜像

【讨论】:

  • 你可以把代码放到 Docker -> Settings -> Docker Engine
  • 应该是 2 "\\" => "data-root": "D:\\VirtualMachines\\Docker"
  • 应该使用正斜杠,如 "data-root": "D:/VirtualMachines/Docker"
【解决方案5】:

编辑 Docker 守护程序配置并使用 "data-root": "D:\\docker" 而不是 "graph": "/D/docker"。
这会将所有新下载的图像移动到D:\docker 文件夹。

对于旧 Docker 版本,使用图表 "graph": "D:\\docker",“图表”已被弃用。

【讨论】:

  • 这是否适用于 Windows 2019 服务器上的 Docker 企业?具体来说,Docker 版本 19.03.5,构建 2ee0c57608。
【解决方案6】:

有一种更简单的方法可以做到这一点: 转到 Docker 设置 > 高级 > 更改“磁盘映像位置”,并在出现提示时单击“应用”。 Docker 引擎将关闭虚拟机并为您将其移动到新位置。

警告:不得压缩新位置。如果是,那么 Docker 不会显示任何错误,只是不会更改位置。

【讨论】:

  • 您使用的 docker 版本是什么?因为我没有Advance
  • 我一直在尝试这个,当我应用更改时,Docker 只是将其设置回c:\Users\Public\Documents 中的位置,默认情况下它需要所有内容
  • 没有高级选项
  • 在 Docker Community v2.3.x 中,点击路径为Docker > Settings > Resources > Disk Image location(您可能需要向下滚动才能看到“磁盘映像位置”选项。
  • 为什么我没有看到这些高级选项(我在 WSL 2 上运行)
【解决方案7】:

这些步骤都不适合我。重新启动或 Docker 重新启动后,它将移回原始路径。对我有用的是使用Junction

停止泊坞窗引擎

在新位置创建一个目标文件夹:

mkdir d:\docker\vhd

将文件夹Virtual Hard Disks复制到目标文件夹

重命名(并备份)原始文件夹

rename “C:\Users\Public\Documents\Hyper-V\Virtual hard disks” “C:\Users\Public\Documents\Hyper-V\Virtual hard disks_backup”

创建硬符号链接(结)

junction.exe "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks" "d:\docker\vhd\Virtual Hard Disks"

启动 docker 引擎

【讨论】:

  • 这是 Windows 中不错的解决方案,对我有用。谢谢。
【解决方案8】:

对于那些期待 2020 年的人。以下适用于 Windows 10 机器:

  1. 在 Hyper-V 管理器的全局操作窗格中单击 Hyper-V 设置…
  2. 在虚拟硬盘下将位置从默认更改为 您想要的位置。
  3. 在虚拟机下将位置从默认更改为您的 所需的位置,然后点击应用。

  1. 单击“确定”关闭 Hyper-V 设置页面。

【讨论】:

    【解决方案9】:

    我建议查看 Microsoft 文档 docker engine on windows,它是允许更改设置 "data-root": "" 的 daemon.json 文件。

    【讨论】:

      【解决方案10】:

      如果使用 Docker 桌面 GUI 出现问题,使用 Hyper-V 时:

      1. 关闭 Docker 桌面
      2. 编辑 c:\users[USERNAME]\AppData\Roaming\Docker\settings.json
        • 您需要编辑“dataFolder”条目。使用双反斜杠。
        • 例如:"dataFolder": "D:\Demo\Hyper-V\DockerDesktop\DockerDesktop",
      3. 重启 Docker 桌面

      如果 Docker Desktop 无法跟踪您的数据文件夹的位置,您也可以使用上述方法,因为 GUI 不允许您将其设置为以前使用的位置。

      【讨论】:

        【解决方案11】:

        来自 Docker Desktop 的配置对我有用(最新版本 V20.10.8)

        步骤

        1. 进入设置
        2. 选择“Docker 引擎”选项
        3. 在配置文件中添加属性“data-root”:“D:\Docker”
        4. 应用并重启

        Settings

        【讨论】:

        • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
        猜你喜欢
        • 2020-10-07
        • 2017-07-04
        • 2016-02-29
        • 2021-11-15
        • 2021-12-10
        • 2020-07-13
        • 2016-05-21
        相关资源
        最近更新 更多