更改Docker计算机位置-Windows

更改Docker计算机位置-Windows,windows,docker,docker-machine,docker-toolbox,Windows,Docker,Docker Machine,Docker Toolbox,我正在使用Windows7上的docker工具箱运行docker。(docker版本1.9.1) 事实证明,docker机器在C:\Users\username\.docker\machine\machines\default创建其VM。当我提交映像时,这个位置的VM的大小会膨胀。因为是Windows,我买不起C盘上的奢侈空间 有什么方法可以更改默认机器的位置吗?自2015年以来,现在(2017年6月)允许您定义您想要的位置: 见: 可以移动包含映像和非主机装载卷的VHDX文件(使用UI中的“高

我正在使用Windows7上的docker工具箱运行docker。(docker版本1.9.1)

事实证明,docker机器在C:\Users\username\.docker\machine\machines\default创建其VM。当我提交映像时,这个位置的VM的大小会膨胀。因为是Windows,我买不起C盘上的奢侈空间

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

自2015年以来,现在(2017年6月)允许您定义您想要的位置:

见:

可以移动包含映像和非主机装载卷的VHDX文件(使用UI中的“高级”选项卡)

这将用一行修改
%APPDATA%\Docker\settings.json

"MobyVhdPathOverride":"C:\\Users\\Public\\Documents\\Hyper-V\\New folder\\MobyLinuxVM.vhdx"


原始答案

目前,docker machine强制使用
%USERPROFILE%

如中所述:

同时,用户将如何指定
.docker/machine/*
文件的存储位置

您可以通过在命令行上指定
--storage path
,或使用环境变量
MACHINE\u storage\u path

(您可以在中看到它的实现)

指出

刚刚在Mac电脑上尝试了“
-s
”,似乎效果不错。
可能不明显的是,路径选项在命令前面
运行“
docker machine-s/Volumes/other/location'create--driver=virtualbox
”在其他位置创建了一个新的virtualbox映像


运行docker quick start terminal时放置这两个命令

我假设您的新位置是“D:\docker”,新机器名是“docker1”


这将在您的新位置创建一台具有指定名称的新计算机。

这是在Windows 7上非常适合我的:

  • 将MACHINE\u STORAGE\u PATH环境变量设置为要用于Docker机器/虚拟机、缓存等的位置的根
  • 安装Docker工具箱
  • 运行Docker快速启动终端
  • Docker Toolbox现在将在机器存储路径指向的位置创建所有文件

    更新:

    请注意,使用新存储路径创建新VM并不理想,因为Docker Quickstart终端脚本似乎无法处理任何未命名为“default”的内容

    如果您已经在C:驱动器中安装了一个虚拟机,那么最简单的方法是转到Oracle VirtualBox并删除“默认”虚拟机,卸载Docker Toolbox,删除C:\Users\.Docker\,然后按照上述3个步骤操作

    注意:可能不需要卸载和重新安装Docker Toolbox。但是没有它我就没试过

    更新


    要同时移动Docker证书,请将
    Docker\u CERT\u PATH
    变量设置为指向新驱动器的路径。感谢@Nutle提供的提示。

    我在上述任何解决方案中都遇到了一些问题,但这对我来说是有效的:

    • 定义
      MACHINE\u STORAGE\u PATH
      环境变量以指向所需的 目录/文件夹
    • 正常安装docker toolbox,如果这对您有效,则可以,但对我来说,它仍然安装在
      .docker
      目录中
    • 为了解决这个问题,我停止并从用户目录中删除了与
      .docker
      文件夹一起创建的默认机器
    • 编辑
      start.sh
      脚本并在顶部添加行:
    e、 g

    • 运行Docker Quickstart终端快捷方式,在所需文件夹中重建默认机器

    我无法使MACHINE\u STORAGE\u PATH环境变量方法工作。它不断抱怨在第一次初始化机器时丢失了证书。仍然在Windows7上,因此必须使用docker工具箱

    我通过以下方式解决了这个问题:

  • 卸载Docker工具箱并重新启动计算机
  • 打开管理员提示(查找命令提示,按住shift键,选择“以管理员身份运行”)
  • 正在从%USERPROFILE%删除.docker:rmdir/S%USERPROFILE%.docker
  • 在别处创建名为.docker的文件夹:mkdir a:\.docker
  • mklink/J%USERPROFILE%.docker a:\.docker
  • 关闭管理命令提示符
  • 重新安装Docker工具箱
  • 使用Docker Quickstart终端链接引导所有内容
  • Kitematic现在也可以打开了(尽管在第一次出错时我不得不选择“使用虚拟盒”选项)

  • 这些答案在最新版本中已过期。可在设置用户界面中配置位置


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

  • 将文件
    C:\Users\{myUsername}\.docker\machine\machines\default\disk.vmdk
    复制到另一个文件夹中,比如
    F:\docker image\
  • 打开
    VirtualBox
    ,选择
    default
    VM并打开
    Settings
  • 打开
    Storage
    ,选择当前
    disk.vmdk
    并释放(或删除)
  • 单击
    选择虚拟硬盘文件…
    并在
    F:\docker image\
  • 出现警告:VirtualBox投诉旧的VM UID,然后进入菜单
    文件
    ,选择
    虚拟媒体管理器…
    ,然后释放或删除旧的
    磁盘。vmdk
  • 重试
    4。
    ,完成了
  • 如果您的环境需要,还可以对boot2docker.iso、快照文件夹、视频捕获进行重新定位

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

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

    例如:

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

    并运行:

    C:\Users\username>mklink /j .docker D:\.docker
    Junction created for .docker <<===>> D:\.docker
    
    C:\Users\username>mklink/j.docker D:\.docker
    交叉路口
    
    export MACHINE_STORAGE_PATH=D:\\Docker
    
    C:\Users\username>mklink /j .docker D:\.docker
    Junction created for .docker <<===>> D:\.docker