我在Windows 7上使用docker工具箱来运行docker。 (docker版本1.9.1)
事实certificate,docker机在C: Users username .docker machine machines default下创build了它的虚拟机。 而当我提交的图像在这个位置虚拟机的大小膨胀起来。 自Windows以来,无法承受C盘空间的奢侈。
有什么办法可以改变默认机器的位置吗?
在Windows Server 2016中使用Hyper-V中的Docker和Compose
Dockerregistrylogin文件在哪里?
DOCKER for Windows – 打开cmd执行docker机器env
Docker + Nginx + PHP – Nginx是不是指向根目录?
Dockerfile与docker-compose.yml
在Docker-compose的命令键中使用容器的环境variables
Docker – 安装PHP-memcached extenstion不工作?
Docker不能在Windows10中工作
在Ubuntu上运行docker:挂载的主机卷不能从容器写入
Docker暴露端口疯狂
这是在Windows 7上完美的工作:
将MACHINE_STORAGE_PATH环境变量设置为要用于Docker机器/ VM,缓存等的位置的根目录
安装Docker工具箱
运行Docker快速入门终端
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%Dockersettings.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}.dockermachinemachinesdefaultdisk.vmdk到另一个文件夹中,比如F:docker-image C:Users{myUsername}.dockermachinemachinesdefaultdisk.vmdk F:docker-image 。
打开VirtualBox ,选择default虚拟机并打开Settings 。
打开Storage ,选择当前的disk.vmdk并释放它(或删除它)。
点击Choose Virtual Hard disk File...并搜索复制的文件在F:docker-image
发生警告:VirtualBox投诉旧的虚拟机UID,然后进入菜单File ,选择Virtual Media Manager...并释放或删除旧的disk.vmdk
重试4. ,完成了!
如果您的环境需要,则还要为boot2docker.iso,快照文件夹,视频捕获进行重定位。
我无法获得MACHINE_STORAGE_PATH环境变量方法的工作。 在第一次初始化机器时,它一直抱怨缺少证书。 仍然在Windows 7上,所以必须使用docker-toolbox。
我解决了这个问题:
卸载Docker ToolBox并重新启动机器
打开管理员提示符(查找命令提示符,按住Shift键,选择“以管理员身份运行”)
从%USERPROFILE%删除.docker:rmdir / S%USERPROFILE%.docker
在其他地方创建名为.docker的文件夹:mkdir a:。docker
mklink / J%USERPROFILE%.docker a:。docker
重新安装Docker ToolBox
Kitematic现在也可以打开(虽然我不得不在第一个错误选择“使用虚拟框”选项。
您可以将.docker目录移动到另一个驱动器并为其创建一个交接点。
请注意,常规快捷键不起作用。
例如:
将.docker目录从C:Usersusername移到D:
并运行:
C:Usersusername>mklink /j .docker D:.docker Junction created for .docker <<===>> D:.docker
上面的任何解决方案我都遇到了一些麻烦,但是这对我是有效的:
定义MACHINE_STORAGE_PATH环境变量来指向你想要的目录/文件夹。
.docker安装.docker -toolBox,如果这对你.docker ,那么对我来说,它仍然是安装在.docker目录中。
为了解决这个问题,我已经停止并从Users目录中删除了与.docker文件夹一起创建的默认机器。
编辑start.sh脚本并在顶部添加该行:
例如
export MACHINE_STORAGE_PATH=D:\Docker
运行Docker快速入门终端快捷方式,它重建所需文件夹内的默认机器
截至最新版本,这些答案已经过时。 该位置可以在“设置”用户界面中进行配置。
https://github.com/docker/for-win/issues/333
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。