takaya030の備忘録

PHP、Laravel、Docker などの話がメインです

Windows + VirtualBox で構築した Docker ホストマシンのストレージを移動する

docker-machine を使って WindowsVirtualBox 上に Docker のホストマシンを作成した場合、デフォルトで
C:\Users\<ユーザー名>\.docker\machine\machines\<マシン名> 以下に仮想ディスクファイル (.vmdk) が作られます。
自分の環境では C ドライブの容量が 128GB と少なく、コンテナイメージを作るには少々心許なかったので、別ドライブに移動させてみました。

移動させたストレージは↓こちらの手順で作成した Docker ホストマシンになります。

仮想マシンの停止

docker ホストマシンが停止しているか確認します。

$ docker-machine ls
NAME   ACTIVE   DRIVER       STATE     URL   SWARM
dev    *        virtualbox   Stopped

起動中の場合は下記のコマンドで停止します。

$ docker-machine stop dev

disk.vmdk の移動

今回は D ドライブに移動させます。

D:\>mkdir D:\docker\machine\machines\dev
D:\>copy C:\Users\takaya030\.docker\machine\machines\dev\disk.vmdk D:\docker\machine\machines\dev

.vbox ファイルの編集

C:\Users\<ユーザー名>\.docker\machine\machines\dev\dev\dev.vbox に設定されている disk.vmdk ファイルのパスを変更します

--- dev.vbox.orig       2015-06-14 18:45:04 +0900
+++ dev.vbox    2015-06-21 12:01:38 +0900
@@ -9,7 +9,7 @@
   <Machine uuid="{4a5d1ce3-c935-4150-8345-7f886a384544}" name="dev" OSType="Linux26_64" snapshotFolder="Snapshots" lastStateChange="2015-06-14T09:45:03Z">
     <MediaRegistry>
       <HardDisks>
-        <HardDisk uuid="{2abf1ae5-c4ce-4ba4-b701-1e140e92eeb2}" location="C:/Users/takaya030/.docker/machine/machines/dev/disk.vmdk" format="VMDK" type="Normal"/>

+        <HardDisk uuid="{2abf1ae5-c4ce-4ba4-b701-1e140e92eeb2}" location="D:/docker/machine/machines/dev/disk.vmdk" format="VMDK" type="Normal"/>
       </HardDisks>
       <DVDImages>
         <Image uuid="{d811db4e-bcd3-404d-8f01-5de4b1aa1f8a}" location="C:/Users/takaya030/.docker/machine/machines/dev/boot2docker.iso"/>

仮想マシンの起動

$ docker-machine start dev