ちなみに

火曜日の空は僕を押しつぶした。

Docker Toolbox に移行したら VirtualBox のバージョンでハマった話

TL;DR

  • ToolBox 1.8.1b に同梱されている VirtualBox 5.0.2 だと VM の作成に失敗する
  • 5.0.0 かテストビルドの 5.0.3 を使えばうまくいく
  • Toolbox の次のバージョンでは修正版が同梱されるようなのでワークアラウンドな対応

駄文

公式から Docker Toolbox というのが出てきまして、さっさと Boot2docker から移行してくれとのアナウンスがありましたので、重い腰をあげて仕事用のMBP(Yosemite)と自宅のMBP(El Capitan)で移行しました。

blog.docker.com

移行はドキュメントの手順に従って行えば万事上手くいくはずなのですが、インストールが終わって docker-machie ls したらなんか VM が起動していない状態になっていました。

docs.docker.com

なんか間違ったかと、一回消してみて再度作りなおしてみたり、Boot2Docker からのインポートを止めて素の VM を作ってみたりしましたがうまくいかない。

-D つけるとデバッグ出力が見られるっぽいので眺めてたらエラーが出ている。

$ docker-machine -D create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm docker-vm
.
.
.
STDERR: VBoxManage: error: Code NS_ERROR_INVALID_ARG
.
.
.

困ったと思って検索したら、Issue が立っていて、どうやら VirtualBox 5.0.2 の問題らしい。

github.com

VirtualBox のバージョンを 5.0.2 に以外にすれば動きそうなので、会社のものは安全側に倒して 5.0.0、家のは 5.0.3 にしておいた。

$  docker-machine ls
NAME        ACTIVE   DRIVER       STATE     URL                         SWARM
docker-vm   *        virtualbox   Running   tcp://192.168.99.100:2376

よさそう。

eval "$(docker-machine env docker-vm)"

みたいなのをシェルの設定ファイルに書いて、/etc/hostsdocker-toolbox みたいなホストを追加しておいた。

ちなみに

Boot2Docker は HomeBrew で入れたものだったのだけれど、boot2docker upgrade してしまって上書きされてて、brew uninstall しただけだとバイナリを消せなかったので、以下のサイトを参考に手で消した。

therealmarv.com