Docker for Macのrawディスク移行

Docker for MacのVersion 17.12.0から、Linux VMのディスクのrawフォーマットがサポートされています。

High Sierra+APFS+SSD構成が前提ですが、 Release Notesによると “from 320MiB/sec to 600MiB/sec in `dd` on a 2015 MacBook Pro” とのことで、スループットが倍になるようです。

ファイル破損リスクがある

MacOSのAPFSがまだ枯れていないため、 Disk/image corruption with large numbers of filesのようにコンテナ上のファイル破損するケースが報告されており、2018-01-18 17.12.0-ce-mac49で導入されたrawディスクのデフォルト設定(新規インストール時)は、2018-02-27 17.12.0-ce-mac45で元のqcowに戻されています。

ファイル破損は予期せぬトラブルにつながるため、rawフォーマットの安定性が確認できるまでは利用を避けた方が良いでしょう。

rawフォーマットへの移行

既存の環境では、qcowフォーマットのファイル上にディスクイメージが作成されているため、移行するためには再作成が必要になります。

この際、VM上のコンテナイメージはすべて消えるため、注意が必要です。

適切にVolumeを利用するなど、コンテナイメージが揮発することを意識した構成になっていれば問題ありませんが、単純にコンテナ上にデータを保持している場合はVMディスクを消すとなくなります。

DockerのPreferences UIの”Reset”タブにある、”Remove all data”ボタン(または”Reset to factory defaults”)を押すと、既存のデータが削除され、引き続いてDocker再起動時にrawディスクが作成されます。

またその際、Dockerのネットワークも消えますので、必要に応じてdocker network create some_dockernetworkします。

rawディスクに切り替わったことは、Preferences UIの”Disk”タブのイメージPATH文字列の拡張子で何とか判別できます。

中馬崇尋
Chuma Takahiro