こんにちは。
毎日のように Vagrant で up と destroy を繰り返している者です。
大変便利に活用しているのですが、仮想マシンの起動・停止とプロビジョニングを一日に何度も実行していると待ち時間も馬鹿にならないため、もっと素早くアプリケーションを立ち上げて開発サイクルを回したいなあと思っていました。
そんなときは Docker 使ってみては?というアドバイスを頂きましたのでさっそくインストールから試してみたいと思います。
環境
boot2docker は VirtualBox 上に Linux 仮想マシンを立ち上げ、その上でコンテナを実行します。
- Mac OS X Yosemite
- Virtual Box 4.3.28
- boot2docker 1.7.0
VirtualBox のインストール
https://www.virtualbox.org/wiki/Downloads
私は既にVirtualBoxを使用しているので、インストールは省略しました。
boot2docker のインストール
http://boot2docker.io
Boot2Docker-1.7.0.pkg をダウンロードしてインストールします。
仮想マシンの作成
boot2docker init
で VirtualBox の仮想マシンを作成します。
$ boot2docker init
仮想マシンの起動
boot2docker up
で仮想マシンが起動します。
出力メッセージ末尾の環境変数がのちほど必要になります。
$ boot2docker up
(中略)
To connect the Docker client to the Docker daemon, please set:
export DOCKER_HOST=tcp://192.168.59.104:2376
export DOCKER_CERT_PATH=/Users/takayuki/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
仮想マシンの状態確認は boot2docker status
です。
$ boot2docker status
running
環境変数の設定
docker コマンド用に環境変数を設定します。
$ export DOCKER_HOST=tcp://192.168.59.104:2376
$ export DOCKER_CERT_PATH=/Users/takayuki/.boot2docker/certs/boot2docker-vm
$ export DOCKER_TLS_VERIFY=1
dockerコマンドのテスト
$ docker info
Containers: 0
Images: 0
(中略)
Init Path: /usr/local/bin/docker
Docker Root Dir: /mnt/sda1/var/lib/docker
$
仮想マシンの停止
$ boot2docker halt
$ boot2docker status
poweroff
仮想マシンの削除
$ boot2docker destroy
こんなとき
-
docker info
でCannot connect to the Docker daemon. Is 'docker -d' running on this host?
-
env | grep DOCKER
で環境変数が正しく設定されているか確認しましょう。
-
まとめ
仮想マシンの作成から削除までのオプションは Vagrant と似たような感じで実行できるので、とてもわかりやすいですね。私は up
と halt
を使いましたが、start
と stop
でも良いようです。
docker コマンドについてはまた後日勉強します。
参考
- Dockerエキスパート養成読本