我在Windows 7上使用docker工具箱来运行docker。 (docker版本1.9.1)
事实certificate,docker机在C:\ Users \ username \ .docker \ machine \ machines \ default下创build了它的虚拟机。 而当我提交的图像在这个位置虚拟机的大小膨胀起来。 自Windows以来,无法承受C盘空间的奢侈。
有什么办法可以改变默认机器的位置吗?
这是在Windows 7上完美的工作:
Docker Toolbox现在将在MACHINE_STORAGE_PATH指向的位置创建所有文件。
更新:
请注意,使用新存储路径创建新虚拟机并不理想,因为Docker快速入门终端脚本似乎不适用于任何未命名为“default”的内容。
如果你已经有一个虚拟机在C:盘,那么最简单的做法是去Oracle VirtualBox,删除“默认”虚拟机,卸载Docker Toolbox,删除C:\ Users \ <username>。 docker \,然后按照上面的3个步骤。
注意:卸载并重新安装Docker Toolbox可能不是必需的。 但是我没有测试过。
更新
要也移动Docker证书,请将DOCKER_CERT_PATH
变量设置为指向新驱动器的路径。 感谢@Nutle的提示。
自2015年以来,现在(2017年6月) Hyper-V允许您定义您的VHDX
文件的位置 :
请参阅Docker for Windows 1.13.0,2017-01-19(稳定) :
可以移动包含图像和非主机装入卷的VHDX文件(使用UI中的“高级”选项卡)
这将用一行修改%APPDATA%\Docker\settings.json
:
"MobyVhdPathOverride":"C:\\Users\\Public\\Documents\\Hyper-V\\New folder\\MobyLinuxVM.vhdx"
看到这个线程更多 。
原始答案
目前2015年,码头机强制使用%USERPROFILE%
:
参见libmachine/mcnutils/utils.go#L17-L25
如问题499中所评论的:
同时,用户将如何指定
.docker/machine/*
文件的存储位置?您可以通过在命令行上指定
--storage-path
或使用环境变量MACHINE_STORAGE_PATH
。
(你可以看到它在PR 1941实施)
Joost Den Boer 在评论中指出
刚刚在Mac上试过'
-s <path>
',它似乎工作正常。
可能不太明显的是路径选项在命令之前 。
运行“docker-machine -s /Volumes/other/location' create --driver=virtualbox
“在另一个位置创建了一个新的VirtualBox映像。
在运行docker快速启动终端时放置这两个命令。
我想你的新位置是“D:\ docker”,你的新机器名是“docker1”
export MACHINE_STORAGE_PATH=D:\\docker docker-machine create --driver=virtualbox docker1
这应该在您的新位置创建一个具有指定名称的新机器。
只需使用VirtualBox图形界面来重定位文件disk.vmdk
:
C:\Users\{myUsername}\.docker\machine\machines\default\disk.vmdk
到另一个文件夹中,比如F:\docker-image\
C:\Users\{myUsername}\.docker\machine\machines\default\disk.vmdk
F:\docker-image\
。 VirtualBox
,选择default
虚拟机并打开Settings
。 Storage
,选择当前的disk.vmdk
并释放它(或删除它)。 Choose Virtual Hard Disk File...
并搜索复制的文件在F:\docker-image\
File
,选择Virtual Media Manager...
并释放或删除旧的disk.vmdk
4.
,完成了! 我无法获得MACHINE_STORAGE_PATH环境变量方法的工作。 在第一次初始化机器时,它一直抱怨缺少证书。 仍然在Windows 7上,所以必须使用docker-toolbox。
我解决了这个问题:
您可以将.docker
目录移动到另一个驱动器并为其创建一个交接点。
请注意,常规快捷键不起作用。
例如:
将.docker
目录从C:\Users\username
移到D:\
并运行:
C:\Users\username>mklink /j .docker D:\.docker Junction created for .docker <<===>> D:\.docker
上面的任何解决方案我都遇到了一些麻烦,但是这对我是有效的:
MACHINE_STORAGE_PATH
环境变量来指向你想要的目录/文件夹。 .docker
安装.docker
-toolbox,如果这对你.docker
,那么对我来说,它仍然是安装在.docker
目录中。 .docker
文件夹一起创建的默认机器。 start.sh
脚本并在顶部添加该行: 例如
export MACHINE_STORAGE_PATH=D:\\Docker
截至最新版本,这些答案已经过时。 该位置可以在“设置”用户界面中进行配置。