我在Windows 7上使用docker工具箱来运行docker。 (docker version 1.9.1)
事实证明,docker机器在C:\ Users \ username \ .docker \ machine \ machines \ default创建其VM。当我提交图像时,此位置的VM大小会膨胀。自从它的Windows,无法承受C盘上的豪华空间。
有什么办法可以改变默认机器的位置吗?
答案 0 :(得分:47)
这在Windows 7上对我来说非常有用:
Docker Toolbox现在将在MACHINE_STORAGE_PATH指向的位置创建所有文件。
更新:
请注意,使用新存储路径创建新VM并不理想,因为Docker快速入门终端脚本似乎无法使用任何未命名的内容"默认"。
如果您已经在C:盘中安装了一个虚拟机,那么最简单的方法就是转到Oracle VirtualBox并删除"默认" VM,卸载Docker Toolbox,删除C:\ Users \< username> .docker \,然后按照上面的3个步骤操作。
注意:可能不需要卸载和重新安装Docker Toolbox。但是没有它我就没有测试过。
<强>更新强>
要移动Docker证书,请将DOCKER_CERT_PATH
变量设置为指向新驱动器的路径。感谢@Nutle的提示。
答案 1 :(得分:28)
自2015年起,现在(2017年6月) Hyper-V ,您可以根据自己的需要定义VHDX
files:
请参阅Docker for Windows 1.13.0, 2017-01-19 (stable):
可以移动包含图像和非主机安装卷的VHDX文件(使用UI中的“高级”选项卡)
这将使用以下行修改%APPDATA%\Docker\settings.json
:
"MobyVhdPathOverride":"C:\\Users\\Public\\Documents\\Hyper-V\\New folder\\MobyLinuxVM.vhdx"
原始答案
2015年,docker-machine强制使用%USERPROFILE%
:
见libmachine/mcnutils/utils.go#L17-L25
如issue 499中所述:
与此同时,用户将如何指定
.docker/machine/*
文件的存储位置?您可以在命令行上指定
--storage-path
或使用环境变量MACHINE_STORAGE_PATH
。
(你可以在PR 1941中看到它实现)
Joost Den Boer指出in the comments
刚试过&#39;
-s <path>
&#39;在Mac上它似乎工作正常。
可能不明显的是路径选项在命令之前 正在运行&#34;docker-machine -s /Volumes/other/location' create --driver=virtualbox
&#34;在另一个位置创建了一个新的VirtualBox图像。
答案 2 :(得分:26)
您可以将.docker
目录移动到另一个驱动器并创建一个连接点。
请注意,常规快捷方式无效。
例如:
将C:\Users\username
目录从D:\
移至C:\Users\username>mklink /j .docker D:\.docker
Junction created for .docker <<===>> D:\.docker
并运行:
Compare-Object
答案 3 :(得分:14)
只需使用VirtualBox图形界面重新定位文件disk.vmdk
:
C:\Users\{myUsername}\.docker\machine\machines\default\disk.vmdk
复制到另一个文件夹,例如F:\docker-image\
。VirtualBox
,选择default
VM并打开Settings
。Storage
,选择当前disk.vmdk
并将其释放(或删除)。Choose Virtual Hard Disk File...
并在F:\docker-image\
File
,选择Virtual Media Manager...
并释放或删除旧的disk.vmdk
4.
,已完成!答案 4 :(得分:12)
运行docker quick start terminal时,请输入以下两个命令。
我想你的新位置是&#34; D:\ docker&#34;并且您的新机器名称是&#34; docker1&#34;
export MACHINE_STORAGE_PATH=D:\\docker
docker-machine create --driver=virtualbox docker1
这应该会在新位置创建一个具有指定名称的新计算机。
答案 5 :(得分:8)
我无法使MACHINE_STORAGE_PATH环境变量方法正常工作。首次初始化机器时,它一直抱怨丢失证书。仍然在Windows 7上,所以必须使用docker-toolbox。
我解决了这个问题:
答案 6 :(得分:2)
上面的任何解决方案都遇到了一些问题,但这对我有用:
MACHINE_STORAGE_PATH
环境变量以指向您想要的
目录/文件夹。.docker
目录中。.docker
文件夹一起创建的默认计算机。start.sh
脚本,并在顶部添加了一行:e.g。
export MACHINE_STORAGE_PATH=D:\\Docker
答案 7 :(得分:2)
安装Docker Toolkit之后必须先安装Admin Privileges并安装Docker Toolkit和VM (*因为Docker Toolkit还安装了VM,但它的版本较低,并且与其他iso文件有关,在这种情况下,也可以取消选中*)。现在,我们必须更改disk.vmdk的位置并更新VM中的新位置。
VirtualBox.exe
(不是安装程序)所在的位置,然后右键单击它(可以从在桌面上创建的快捷方式中找到)run this program as administrator
Kitematic
,如果失败(可能会),请选择与虚拟机相关的选项(只有2个选项)default
(右键单击->关闭->关闭电源)disk.vmdk
文件(对我来说C:\Users\Dell\.docker\machine\machines\default\disk.vmdk
粘贴)复制到要存储下载图像的位置(基本上disk.vmdk
会变大)当您使用docker时)default
图像并转到设置disk.vmdk
附件file
-> virtual media manager
并从此处删除disk.vmdk
(现在VM不知道是否存在这种disk.vmdk东西)default
图像->存储-> add hard disk
(此选项位于该iso图像上方)disk.vmdk
docker run hello-world
我从安装开始就写了一个非常具有描述性的答案,因为我确实遇到了一些问题,因此想让其他问题更直接。
如果需要,您可以从C驱动器中删除disk.vmdk磁盘(较旧的磁盘)
答案 8 :(得分:0)
截至最新发布时,这些答案已过时。该位置可在“设置”用户界面中进行配置。
答案 9 :(得分:0)
我发现这些答案很多都没有数据,至少它们在我的环境中不起作用:win10 PRO,docker桌面社区2.0.0.3。最后,我通过这种方法解决了这个问题:
卸载docker
打开Hyper-V管理器(按WIN键,然后输入“ Hyper”)
在 Hyper-V 设置(不是VM设置)中更改默认的虚拟硬盘位置,并确认
安装docker
在docker设置的高级选项中检查磁盘映像位置
答案 10 :(得分:0)
创建名为c:\ programdata \ docker \ config \ daemon.json的文件,其内容位于以下位置:e:\ images是您要存储所有图像等的位置。重启docker。
{ “ graph”:“ e:\ images” }
这像魅力一样工作
参考-https://forums.docker.com/t/where-are-images-stored/9794/11
答案 11 :(得分:0)
我使用Windows 10和Docker桌面(社区)2.0.0.0版,我想将vhdx文件移动到另一个Drive。
右键单击Docker Desktop->设置 然后Docker Desktop UI将打开转到高级->磁盘映像位置 只需将路径更改为新目的地,对我来说整个过程就非常顺利,快速-它会自动将vhdx文件从原始路径复制到新路径,然后重新启动docker,一切均按预期进行
答案 12 :(得分:0)
对于 Windows 7:
将您的 disk.vmdk 文件(对我而言它位于 C:\Users\name.docker\machine\machines\default\disk.vmdk)复制粘贴到您要存储图像的位置下载(基本上 disk.vmdk 是使用 docker 时会增加的大小)
在 Virtualbox 中右键单击默认图像并转到设置 通过右键单击选择存储删除 disk.vmdk 附件 --> 删除
点击文件 --> 虚拟媒体管理器并从这里删除 disk.vmdk
右键单击默认图像--> 存储--> 添加硬盘(此选项位于该iso 图像的正上方)现在选择您已粘贴到某处的disk.vmdk
现在在 config.json (C:\Users\name.docker\machine\machines\default\config.json) 中更改此路径 使用这个新的存储路径更改您放置硬盘位置的存储路径(“StorePath”:“F:\docker-image”)
保存。