将 boot2docker 和 .docker 文件夹移动到其他驱动器

20

我是docker的新手。我已经在D盘安装了docker,但是Boot2docker VM位于C盘的用户文件夹中。

由于我在C盘上没有足够的空间,当我从docker hub中拉取软件时,boot2docker会不断增长。

因此,我想将boot2docker或.docker文件夹移动到D盘。是否可以实现?如何操作呢?


你正在使用哪个版本的Docker?你是否在使用docker-machine? - Alex da Silva
3个回答

19

移动现有磁盘

对于虚拟机的大型机器,其磁盘格式为.vmdk.vdi,所以您只需要将该磁盘移动到D驱动器而不是整个.docker目录。

您可以在Oracle VirtualBox Manager GUI中简单地执行以下操作:

  1. 停止boot2docker虚拟机,并在设置->存储下查找disk.vmdk的位置
  2. disk.vmdk复制到D驱动器(任何位置)
  3. 在VirtualBox Manager中分离(-)disk.vmdk
  4. 从D驱动器附加(+)新的disk.vmdk。确保SATA端口号相同
  5. 验证boot2docker环境,如果未成功,请查找原因
  6. 在迁移完成后,删除C盘中的disk.vmdk以节省空间。

由于我总是缺乏磁盘空间并且经常移动这些磁盘,所以这应该能够正常工作。

对于新创建的磁盘

通常它将创建到默认用户目录中,但是可以通过在创建过程中使用--storage-path标志来将其重定向到新位置。

$ docker-machine --storage-path f: create -d virtualbox dev

查看相关问题:如何让docker-machine在特定位置创建虚拟机


嗨,我在C:\ Users \ USERNAME \ VirtualBox VMs \ boot2docker-vm目录中找到了您提到的文件。 我也要复制.vbox文件吗? - jaycode
1
无法打开硬盘文件D:\Docker\boot2docker-vm\boot2docker-vm.vmdk。无法注册硬盘'D:\Docker\boot2docker-vm\boot2docker-vm.vmdk' {9a4ed2ae-40f7-4445-8615-a59dccb2905c},因为已经存在UUID为{9a4ed2ae-40f7-4445-8615-a59dccb2905c}的硬盘'C:\Users\Jay\VirtualBox VMs\boot2docker-vm\boot2docker-vm.vmdk'。结果代码:E_INVALIDARG (0x80070057) 组件:VirtualBox 接口:IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554} 被调用者RC:VBOX_E_OBJECT_NOT_FOUND (0x80BB0001) - jaycode
谢谢Larry的解决方案,存储路径没问题。问候。 - berzeker
5
我通过在VirtualBox中使用“文件”->“虚拟媒体管理器”->“复制”来解决UUID问题,而不是在系统资源管理器中复制硬盘。 - lib
1
如果您想指定一个特定的文件夹而不是驱动器(“f:”),您可以更改docker安装文件夹中的start.sh文件;但是,请使用类似d:/docker而不是d:\docker(/而不是\)。 - yoavram

18
  1. 停止 boot2docker 虚拟机。
  2. 将文件 C:\Users\$USERNAME\VirtualBox VMs\boot2docker-vm\boot2docker-vm.vmdk 复制到 D 盘(先不要删除)。
  3. 打开 Oracle VM VirtualBox Manager 应用程序。
  4. 打开 文件 / 虚拟媒体管理器
  5. 释放并删除 boot2docker-vm.vmdk。
  6. 回到主面板,在 boot2docker-vm 上右键单击,选择“设置”。
  7. 选择存储。
  8. 添加硬盘,然后从新位置选择 boot2docker-vm.vmdk。

@Larry,没错,对于现有的虚拟机是有效的,但如果您尝试使用docker-machine create创建新的虚拟机,则新的虚拟机将在磁盘C上创建,而不是D。使用我的解决方案,每个新的虚拟机都将在磁盘D上。 - Oleksandr Horobets
@OleksandrHorobets,我看到了.boot2docker目录,但没有.docker。也许有其他方法可以找到这个目录吗? - jaycode
@jaycode,请检查这个目录(.boot2docker)的大小和内容。它是否包含vmdk文件?通常磁盘大小可能高达几GB。 - Oleksandr Horobets
让我们在聊天中继续这个讨论 - jaycode
好的,现在我如何从boot2docker访问D:\驱动器?请查看此问题:https://dev59.com/25Hea4cB1Zd3GeqPmkHR - jaycode
显示剩余5条评论

2
您可以将图片存储在VirtualBox镜像之外,而不必移动磁盘。我喜欢这个想法,因为VirtualBox的磁盘是有限制的,但如果您在主机上托管,那么您就拥有与主机相同的存储空间。
使用VirtualBox共享文件夹选项来完成此操作。我能够使用C:\驱动器中的一个文件夹,为docker需要的所有数据提供存储。
为此,您必须将/var/lib/docker挂载到主机机器上的本地文件夹中。设置“自动挂载”,但不要设置“只读”。
请看下面的GIF图:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接