在Windows 10 Pro上更改Docker本机映像位置

在Windows 10 Pro上更改Docker本机映像位置,docker,windows-10,Docker,Windows 10,这不是一个复制品 我正在Windows 10 Pro上使用docker native版本1.12.1-stable(内部版本:7135),启用了Hyper-V。 因此docker没有运行VirtualBox,我也没有文件夹C:\Users\username\.docker 我想移动docker的图像、缓存。。。到我的辅助驱动器D:\ 我想我应该编辑Docker守护程序配置 我试图添加“图形”:/D/docker“。Docker启动正确,但由于错误,我无法提取任何图像 打开/D/docker/t

这不是一个复制品

我正在Windows 10 Pro上使用docker native版本1.12.1-stable(内部版本:7135),启用了Hyper-V。 因此docker没有运行VirtualBox,我也没有文件夹C:\Users\username\.docker

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

我想我应该编辑Docker守护程序配置

我试图添加
“图形”:/D/docker“
。Docker启动正确,但由于错误,我无法提取任何图像

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

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

我找到了一个解决方案

Windows上的Docker native在Hyper-V虚拟机中运行

移动现有docker虚拟机 我必须将docker使用的VM移动到所需的位置。 我使用Hyper-V manager的GUI完成了这项工作。 docker的虚拟机称为MobyLinux虚拟机

  • 右键单击MobyLinux虚拟机
  • 选择移动
  • 选择所需位置
设置Hyper-V虚拟机的位置 为了确保Hyper-V的未来虚拟机将存储在我的辅助驱动器上, 我跟着

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

SET-VMHOST–computername–virtualharddiskpath'D:\Hyper-V_虚拟硬盘'

SET-VMHOST–computername–virtualmachinepath'D:\Hyper-V_VMs'
编辑Docker守护程序配置并使用
“数据根”:“D:\\Docker”
而不是
“图形”:/D/Docker”

这将把所有新下载的图像移动到
D:\docker
文件夹

对于旧的Docker版本,请使用graph
“graph”:“D:\\Docker”
,“graph”已被弃用


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


警告:不得压缩新位置。如果是这样,Docker将不会向您显示任何错误,只是不会更改位置。

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

停止docker引擎

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

mkdir d:\docker\vhd
将文件夹
虚拟硬盘
复制到目标文件夹

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

rename “C:\Users\Public\Documents\Hyper-V\Virtual hard disks” “C:\Users\Public\Documents\Hyper-V\Virtual hard disks_backup”
创建硬符号链接(连接)

启动docker引擎

docker版本:2.2.0.3(42716)

  • 右键单击桌面托盘上的docker图标
  • 点击设置
  • 3单击左侧菜单中的Resources,然后在磁盘映像位置下单击browse并更改位置

  • 单击应用并重新启动

  • 对于那些期待2020年的人。以下内容适用于Windows 10计算机:

  • 在Hyper-V管理器的全局操作窗格中,单击Hyper-V 设置
  • 在“虚拟硬盘”下,将位置从默认更改为 你想要的位置
  • 在“虚拟机”下,将位置从默认更改为 单击所需位置,然后单击应用
  • 单击“确定”关闭Hyper-V设置页面
  • 2020年,“在Windows 10 Pro上更改Docker本机图像位置”是

  • 退出docker桌面
  • 打开/编辑配置文件“C:\ProgramData\Docker\config\daemon.json”
  • 添加设置“数据根”:“D:\Virtual Machines\Docker”
  • 现在启动docker桌面
  • 运行命令“docker info”查看设置“docker Root Dir:D:\Virtual Machines\docker”
  • 拉动docker图像,例如:docker pull mongo
  • 您可以在文件夹“D:\Virtual Machines\Docker\windowsfilter”中找到下载的图像
  • 在我的情况下(Windows10和Docker Desktop),上述解决方案对我都没有帮助。我找到了解决方案,运行这个命令。此命令将docker目录更改为驱动器D:(不要忘记退出docker desktop


    现在您可以删除.tar

    文件了。我建议您查看Microsoft文档,是daemon.json文件允许更改设置“数据根”:“

    您使用的docker版本是什么?因为我没有AdvanceI我一直在尝试这一点,当我应用更改时,Docker只需将其设置回
    c:\Users\Public\Documents
    中的位置,默认情况下它需要所有内容。没有advanced选项在Docker Community v2.3.x中,单击路径将是
    Docker>Settings>Resources>Disk Image location
    (您可能需要向下滚动以查看“磁盘映像位置”选项。为什么我没有看到这些高级选项(我在WSL 2上运行)每当我重新启动或重新启动docker时,它都会移回原始目录当移动vm后重新启动docker时,hdd位置会设置回默认位置,从而结束新的空虚拟hdd的创建。显然,所有现有docker内容都会消失。我的解决方法是在默认位置创建一个符号链接,指向导出d一。docker desktop 2.3.0.2中的屏幕没有这些配置,因此认为屏幕缺失,但向下滚动有帮助。根据使用的主题,滚动窗格可能很难看到…您应该在设置->常规中禁用“使用基于WSL 2的引擎”以查看高级选项。这里似乎没有人意识到docker已被禁用esktop for Windows有两种模式:Linux容器和Windows容器。(模式在托盘图标上下文菜单中设置。)如果您处于Windows容器模式,则磁盘映像位置选项不存在。我不在Windows容器中(因为它需要Windows Pro或Enterprise Build来启用它),但我的docker也没有这些配置。ps:docker版本:2.5.0.0这在Windows中是一个很好的解决方案,适用于
    junction.exe "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks" "d:\docker\vhd\Virtual Hard Disks"
    
    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