由于 Mac 不能原生支持 docker,所以在 Mac 上都是使用 docker-client和一个 VM 中的装有 docker 的 Linux 系统进行沟通。然而一般 Mac 的空间都比较拙计,一旦使用了比较多的镜像可能就会占用很多空间,这个时候我们可能就会看到 VM 中的虚拟磁盘文件(vmdk)可能会有几十个 G。这个时候我们可以采取一些方法把这个文件转移到其他空间较大的存储上。(如果挂移动硬盘的话缺点就是如果想用 docker 就非得挂硬盘不可,不过可以创建一个新的 VM 专门放一些比较大的镜像,然后 default VM 还是吧 vmdk 放在本机上)

准备工作

安装一下 Vagrant。后面会用到其VBoxManage命令。

如何进行

这里以转移一个叫做 jenkins 的 VM 为例

使用 docker-machine stop jenkins 关掉 VM。

到目录~/.docekr/machine/machines/jenkins/下,会发现有一个叫做 disk.vmdk 的文件,这个文件就是 VM 的虚拟磁盘文件。我们可以使用 VBoxManage clonehd disk.vmdk /移动硬盘的路径/disk.vdi --format VDI的方式克隆一个新的 vdi 虚拟磁盘文件出来(之所以使用 vdi 格式是因为VBoxManage 可以对 vdi 格式的虚拟磁盘文件修改动态分配的空间大小,使用克隆的方式产生的文件和原文件的 UUID 不同,但是内容相同)。

打开 VirtualBox,选择 VM 的设置。

enter image description here

然后在存储的选项中更改虚拟磁盘文件。

enter image description here

好了,接下来就像原来一样继续使用 docker 吧~记得使用这个 VM 的时候挂上硬盘~


Forelax
666 声望28 粉丝

不断探索更大的世界