更改Docker机器位置 - Windows

问题描述 投票:55回答:10

我在Windows 7上使用docker工具箱来运行docker。 (docker version 1.9.1)

事实证明,docker机器在C:\ Users \ username \ .docker \ machine \ machines \ default创建其VM。当我提交图像时,此位置的VM大小会膨胀。自从它的Windows,无法承受C盘上的豪华空间。

有什么办法可以改变默认机器的位置吗?

windows docker docker-machine docker-toolbox
10个回答
50
投票

这对我在Windows 7上的效果非常好:

  1. 将MACHINE_STORAGE_PATH环境变量设置为要用于Docker计算机/ VM,缓存等的位置的根目录。
  2. 安装Docker Toolbox
  3. 运行Docker快速入门终端

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提示。


0
投票

创建名为c:\ programdata \ docker \ config \ daemon.json的文件,其中包含以下内容:e:\ images是您要存储所有图像的位置等。重启docker。

{“graph”:“e:\ images”}

这就像一个魅力

参考 - https://forums.docker.com/t/where-are-images-stored/9794/11


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"

https://cdn-enterprise.discourse.org/docker/uploads/default/optimized/2X/6/6193445cf15811ce18317c727af258adb2d16c9d_1_690x447.jpg

this thread for more


原始答案

目前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图像。


28
投票

您可以将.docker目录移动到另一个驱动器并创建一个连接点。

请注意,常规快捷方式不起作用。

例如:

.docker目录从C:\Users\username移至D:\

并运行:

C:\Users\username>mklink /j .docker D:\.docker
Junction created for .docker <<===>> D:\.docker

15
投票

只需使用VirtualBox图形界面重新定位文件disk.vmdk

enter image description here

  1. 将文件C:\Users\{myUsername}\.docker\machine\machines\default\disk.vmdk复制到另一个文件夹,比如F:\docker-image\
  2. 打开VirtualBox,选择default VM并打开Settings
  3. 打开Storage,选择当前的disk.vmdk并释放它(或删除它)。
  4. 点击Choose Virtual Hard Disk File...并在F:\docker-image\中搜索复制的文件
  5. 发生警告:VirtualBox抱怨旧的VM UID然后转到菜单File,选择Virtual Media Manager...并释放或删除旧的disk.vmdk
  6. 重试4.,它完成了!
  7. 如果您的环境需要,则还要为boot2docker.iso,Snapshot Folder,Video Capture执行重定位。

12
投票

运行docker quick start terminal时,请输入以下两个命令。

我想你的新位置是“D:\ docker”,你的新机器名是“docker1”

export MACHINE_STORAGE_PATH=D:\\docker

docker-machine create --driver=virtualbox docker1

这应该会在新位置创建一个具有指定名称的新计算机。


8
投票

我无法使MACHINE_STORAGE_PATH环境变量方法起作用。首次初始化机器时,它一直抱怨丢失证书。仍然在Windows 7上,所以必须使用docker-toolbox。

我解决了这个问题:

  1. 卸载Docker Toolbox并重新启动计算机
  2. 打开管理员提示(查找命令提示符,按住shift键,选择“以管理员身份运行”)
  3. 从%USERPROFILE%删除.docker:rmdir / S%USERPROFILE%.docker
  4. 在别处创建名为.docker的文件夹:mkdir a:\。docker
  5. mklink / J%USERPROFILE%。docker a:\。docker
  6. 关闭Admin命令提示符
  7. 重新安装Docker Toolbox
  8. 使用Docker Quickstart Terminal链接引导所有内容。
  9. Kitematic现在也可以打开(虽然我必须在第一次出错时选择“使用虚拟盒子”选项。

2
投票

我上面的任何解决方案都遇到了一些麻烦,但这对我有用:

  • 定义MACHINE_STORAGE_PATH环境变量以指向所需的目录/文件夹。
  • 正常安装docker-toolbox,如果这对你有用,那么很好,但对我来说它仍然在.docker目录中安装。
  • 为了解决这个问题,我已经停止并删除了与Users目录中的.docker文件夹一起创建的默认机器。
  • 编辑了start.sh脚本并在顶部添加了行:

EG

export MACHINE_STORAGE_PATH=D:\\Docker
  • 运行Docker快速入门终端快捷方式,重建所需文件夹中的默认计算机

0
投票

截至最新版本,这些答案已过时。该位置可在“设置”用户界面中进行配置。

https://github.com/docker/for-win/issues/333


0
投票

我发现很多这些答案都是数据,至少它们在我的环境中不起作用:win10 PRO,docker desktop community 2.0.0.3。最后,我通过这种方法解决了这个问题:

  1. 卸载docker
  2. 打开Hyper-V管理器(按WIN键然后输入“Hyper”)
  3. 更改Hyper-V设置中的默认虚拟硬盘位置(而不是VM设置)并确认
  4. 安装docker
  5. 检查泊坞窗设置的高级选项中的磁盘映像位置
© www.soinside.com 2019 - 2024. All rights reserved.