更改Docker机器位置 - Windows

时间:2015-11-26 07:48:18

标签: windows docker docker-machine docker-toolbox

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

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

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

13 个答案:

答案 0 :(得分:47)

这在Windows 7上对我来说非常有用:

  1. 将MACHINE_STORAGE_PATH环境变量设置为您要用于Docker计算机/ VM,缓存等的位置的根目录。
  2. 安装Docker Toolbox
  3. 运行Docker快速入门终端
  4. 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"

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

  

刚试过&#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

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. 中搜索复制的文件
  6. 发生警告:VirtualBox会抱怨旧的VM UID,然后转到菜单File,选择Virtual Media Manager...并释放或删除旧的disk.vmdk
  7. 重试4.,已完成!
  8. 如果您的环境需要,请同时为boot2docker.iso,快照文件夹,视频捕获执行重定位。

答案 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。

我解决了这个问题:

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

答案 6 :(得分:2)

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

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

e.g。

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

答案 7 :(得分:2)

此答案适用于使用Docker工具箱的用户(Windows 10 Home Build 1909,您可以按照以下步骤安装docker,然后更改位置。我没有添加任何图像)

安装Docker Toolkit之后必须先安装Admin Privileges并安装Docker Toolkit和VM (*因为Docker Toolkit还安装了VM,但它的版本较低,并且与其他iso文件有关,在这种情况下,也可以取消选中*)。现在,我们必须更改disk.vmdk的位置并更新VM中的新位置。

  • here安装Docker Toolbox。请按照提供的说明进行操作
  • 现在下载虚拟机​​v6 +
  • 以管理员身份安装虚拟机(通过右键单击并选择)
  • 转到您的VirtualBox.exe不是安装程序)所在的位置,然后右键单击它(可以从在桌面上创建的快捷方式中找到)
  • 转到属性->兼容性->更改所有用户的设置->选择run this program as administrator
  • 如果正在运行,请关闭虚拟机,然后运行Kitematic,如果失败(可能会),请选择与虚拟机相关的选项(只有2个选项)
  • 这次可以使用,现在将其关闭

更改下载图像的位置

  • 打开您的VM并关闭新运行的映像default(右键单击->关闭->关闭电源)
  • 将您的disk.vmdk文件(对我来说C:\Users\Dell\.docker\machine\machines\default\disk.vmdk粘贴)复制到要存储下载图像的位置(基本上disk.vmdk会变大)当您使用docker时)
  • 现在我们还需要将此更改告知虚拟机
  • 右键单击default图像并转到设置
  • 选择存储
  • 右键单击->删除(已绑定disk.vmdk的较旧路径),以删除disk.vmdk附件
  • 单击file-> virtual media manager并从此处删除disk.vmdk(现在VM不知道是否存在这种disk.vmdk东西)
  • 右键单击default图像->存储-> add hard disk(此选项位于该iso图像上方)
  • 现在选择您粘贴到某处的disk.vmdk
  • 现在运行您的docker cli,然后运行此命令docker run hello-world
  • 如果没有错误,那就说明一切
  • 您可以通过检查这两个vmdk磁盘的大小,然后提取一些新映像来验证大小



我从安装开始就写了一个非常具有描述性的答案,因为我确实遇到了一些问题,因此想让其他问题更直接。
如果需要,您可以从C驱动器中删除disk.vmdk磁盘(较旧的磁盘)

答案 8 :(得分:0)

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

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

答案 9 :(得分:0)

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

  1. 卸载docker

  2. 打开Hyper-V管理器(按WIN键,然后输入“ Hyper”)

  3. Hyper-V 设置(不是VM设置)中更改默认的虚拟硬盘位置,并确认

  4. 安装docker

  5. 在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->设置 enter image description here 然后Docker Desktop UI将打开转到高级->磁盘映像位置 enter image description here 只需将路径更改为新目的地,对我来说整个过程就非常顺利,快速-它会自动将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”)

保存。