在 Windows 10 Pro 上更改 Docker 本机映像位置
Posted
技术标签:
【中文标题】在 Windows 10 Pro 上更改 Docker 本机映像位置【英文标题】:Change Docker native images location on Windows 10 Pro 【发布时间】:2017-03-20 20:15:01 【问题描述】:这不是重复 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 使用另一个路径来存储它的图像等?
【问题讨论】:
致那些正在寻找使用 WSL2 的解决方案的人,请访问:***.com/questions/62441307/… 【参考方案1】:我找到了解决方案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 时,硬盘位置设置回默认值,以创建新的空虚拟硬盘结束。显然,所有现有的码头工人的东西都消失了。我的解决方法是在默认位置创建一个指向被驱逐者的符号链接。【参考方案2】:编辑 Docker 守护程序配置并使用 "data-root": "D:\\docker"
而不是 "graph": "/D/docker"
。
这会将所有新下载的图像移动到D:\docker
文件夹。
对于旧 Docker 版本,使用图形
"graph": "D:\\docker"
,“图形”已被弃用。
【讨论】:
这是否适用于 Windows 2019 服务器上的 Docker 企业?具体来说,Docker 版本 19.03.5,构建 2ee0c57608。【参考方案3】:有一种更简单的方法可以做到这一点: 转到 Docker 设置 > 高级 > 更改“磁盘映像位置”,并在出现提示时单击“应用”。 Docker 引擎将关闭虚拟机并为您将其移动到新位置。
警告:不得压缩新位置。如果是,那么 Docker 不会显示任何错误,只是不会更改位置。
【讨论】:
您使用的 docker 版本是什么?因为我没有Advance 我一直在尝试这个,当我应用更改时,Docker 只是将其设置回c:\Users\Public\Documents
中的位置,默认情况下它需要所有内容
没有高级选项
在 Docker Community v2.3.x 中,点击路径为Docker > Settings > Resources > Disk Image location
(您可能需要向下滚动才能看到“磁盘映像位置”选项。
为什么我没有看到这些高级选项(我在 WSL 2 上运行)【参考方案4】:
这些步骤都不适合我。重新启动或 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 中不错的解决方案,对我有用。谢谢。【参考方案5】:Docker 版本:2.2.0.3 (42716)
-
右键单击桌面托盘上的泊坞窗图标
-
点击设置
3 单击左侧菜单中的资源,然后在磁盘映像位置下单击浏览并更改位置
-
点击应用并重启
【讨论】:
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【参考方案6】:对于那些期待 2020 年的人。以下适用于 Windows 10 机器:
-
在 Hyper-V 管理器的全局操作窗格中单击 Hyper-V
设置…
在虚拟硬盘下将位置从默认更改为
您想要的位置。
在虚拟机下将位置从默认更改为您的
所需的位置,然后点击应用。
-
单击“确定”关闭 Hyper-V 设置页面。
【讨论】:
【参考方案7】:在 2020 年为“在 Windows 10 Pro 上更改 Docker 本机映像位置”是,
-
退出 docker 桌面
打开/编辑配置文件“C:\ProgramData\Docker\config\daemon.json”
添加设置“data-root”:“D:\Virtual Machines\Docker”
现在启动 docker 桌面
运行命令“docker info”查看设置“Docker Root Dir: D:\Virtual Machines\Docker”
拉取 docker 镜像,例如:docker pull mongo
您可以在“D:\Virtual Machines\Docker\windowsfilter”文件夹中找到下载的镜像
【讨论】:
你可以把代码放到 Docker -> Settings -> Docker Engine 应该是 2 "\\" => "data-root": "D:\\VirtualMachines\\Docker" 应该使用正斜杠,如 "data-root": "D:/VirtualMachines/Docker"【参考方案8】:在我的情况下(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【参考方案9】:我建议查看 Microsoft 文档 docker engine on windows,它是允许更改设置 "data-root": "" 的 daemon.json 文件。
【讨论】:
【参考方案10】:如果使用 Docker 桌面 GUI 出现问题,使用 Hyper-V 时:
-
关闭 Docker 桌面
编辑 c:\users[USERNAME]\AppData\Roaming\Docker\settings.json
您需要编辑“dataFolder”条目。使用双反斜杠。
例如:"dataFolder": "D:\Demo\Hyper-V\DockerDesktop\DockerDesktop",
重启 Docker 桌面
如果 Docker Desktop 无法跟踪您的数据文件夹的位置,您也可以使用上述方法,因为 GUI 不允许您将其设置为以前使用的位置。
【讨论】:
【参考方案11】:来自 Docker Desktop 的配置对我有用(最新版本 V20.10.8)
步骤
-
进入设置
选择“Docker 引擎”选项
在配置文件中添加属性“data-root”:“D:\Docker”
应用并重启
Settings
【讨论】:
虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review以上是关于在 Windows 10 Pro 上更改 Docker 本机映像位置的主要内容,如果未能解决你的问题,请参考以下文章
PHP cURL 突然无法在 Windows 10 Pro 上加载