【メモ】boot2docker から docker-machine に移行する方法

【メモ】boot2docker から docker-machine に移行する方法 はてなブックマーク - 【メモ】boot2docker から docker-machine に移行する方法


自分用(._.) φ メモメモ

■概要

docker-machine 0.3 は、boot2docker(VirtualBox)の仮想マシンイメージを docker-machine で扱えるように変換することができる。コンテナや、コンテナイメージをそのまま移行できる。変換のためには、

$ docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm b2d

を実行する。「b2d」の部分はドキュメントのままだが、local-docker等、任意のものを指定する事も可能。

なお、boot2docker が使用する VirtualBox 用の仮想マシン・イメージ(boot2docker-vm)は残り続けるため、別々の環境として利用することも可能。

■Windows 7 (CygWin上) での移行記録

まず、移行用コマンドの実行。予め boot2docker の最新版と、docker-machine for Win 64bit の最新版(v.0.3.0) をセットアップしておいた。

zembutsu@zembutsu-PC ~
$ docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm b2d
Creating VirtualBox VM...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: C:\cygwin64\bin\docker-machine env b2d

Docker にアクセスする環境変数は、Cygwin上のため「–shell linux」オプションを指定する。

$ docker-machine env b2d --shell linux
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\zembutsu\.docker\machine\machines\b2d"
export DOCKER_MACHINE_NAME="b2d"

あとは、この export 行を実行する。

※ CMD.exe の場合は「–shell cmd」を入力して、表示される set 行を実行する。

あとは、「docker-machine ls」を実行する。

zembutsu@zembutsu-PC ~
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
b2d * virtualbox Running tcp://192.168.99.100:2376

あとは docker-machine ssh b2d で boot2docker 風に使うこともできる。CygWin 以外の環境であれば、そのまま Docker デーモンの操作をコマンドライン上でも行うことが可能。

※なお、現時点の Docker Machine v0.3.0 はベータ版であり、本番環境の利用は推奨されていない。ただし、これまでローカルはboot2dockerを使い、リモートはDocker Machineを併用する必要があった。開発中とはいえ、クライアントを docker-machine で一本化できるのはメリットがある。

※boot2docker との決定的な違いは、boot2docker が VirtualBox 上の仮想マシンが固定だったのに対し、docker-machine 経由であれば、複数の VirtualBox VM を任意の名称で作成・破棄が楽にできる点が大きい。