我在Windows 7上使用docker工具箱来运行docker。 (docker version 1.9.1)
事实证明,docker机器在C:\ Users \ username \ .docker \ machine \ machines \ default创建其VM。当我提交图像时,此位置的VM大小会膨胀。自从它的Windows,无法承受C盘上的豪华空间。
有什么办法可以改变默认机器的位置吗?
这对我在Windows 7上的效果非常好:
Docker Toolbox现在将在MACHINE_STORAGE_PATH指向的位置创建所有文件。
更新:
请注意,使用新存储路径创建新VM并不理想,因为Docker Quickstart Terminal脚本似乎不适用于任何未命名为“default”的内容。
如果你已经在C:盘中安装了一个虚拟机,那么最简单的方法就是转到Oracle VirtualBox并删除“默认”虚拟机,卸载Docker Toolbox,删除C:\ Users \ <用户名>。 docker \,然后按照上面的3个步骤操作。
注意:可能不需要卸载和重新安装Docker Toolbox。但是没有它我没有测试过。
更新
要同时移动Docker证书,请将DOCKER_CERT_PATH
变量设置为指向新驱动器的路径。感谢@Nutle提示。
创建名为c:\ programdata \ docker \ config \ daemon.json的文件,其中包含以下内容:e:\ images是您要存储所有图像的位置等。重启docker。
{“graph”:“e:\ images”}
这就像一个魅力
参考 - https://forums.docker.com/t/where-are-images-stored/9794/11
自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
刚刚在Mac上试过'
-s <path>
'它似乎工作正常。 可能不太明显的是路径选项在命令之前。 运行“docker-machine -s /Volumes/other/location' create --driver=virtualbox
”在另一个位置创建了一个新的VirtualBox图像。
您可以将.docker
目录移动到另一个驱动器并创建一个连接点。
请注意,常规快捷方式不起作用。
例如:
将.docker
目录从C:\Users\username
移至D:\
并运行:
C:\Users\username>mklink /j .docker D:\.docker
Junction created for .docker <<===>> D:\.docker
只需使用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.
,它完成了!运行docker quick start terminal时,请输入以下两个命令。
我想你的新位置是“D:\ docker”,你的新机器名是“docker1”
export MACHINE_STORAGE_PATH=D:\\docker
docker-machine create --driver=virtualbox docker1
这应该会在新位置创建一个具有指定名称的新计算机。
我无法使MACHINE_STORAGE_PATH环境变量方法起作用。首次初始化机器时,它一直抱怨丢失证书。仍然在Windows 7上,所以必须使用docker-toolbox。
我解决了这个问题:
我上面的任何解决方案都遇到了一些麻烦,但这对我有用:
MACHINE_STORAGE_PATH
环境变量以指向所需的目录/文件夹。.docker
目录中安装。.docker
文件夹一起创建的默认机器。start.sh
脚本并在顶部添加了行:EG
export MACHINE_STORAGE_PATH=D:\\Docker
截至最新版本,这些答案已过时。该位置可在“设置”用户界面中进行配置。
我发现很多这些答案都是数据,至少它们在我的环境中不起作用:win10 PRO,docker desktop community 2.0.0.3。最后,我通过这种方法解决了这个问题: