OSXでDockerの動作確認まで


## Boot2Dockerを入れる

Dockerを手っ取り早く使うために、Doot2Dockerというツールが用意されています。
Boot2DockerはDockerデーモンの実行環境となる仮想マシンを準備してくれるみたいです。

VirtualBoxのラッパーみたいなものかな？Vagrantと似てますね。

### Homebrewでインストール

``brew search``したら出てきたので、Homebrewで入れてみました。

```
$ brew install boot2docker
==> Installing boot2docker dependency: docker
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/docker-1.3.
######################################################################## 100.0%
==> Pouring docker-1.3.1.yosemite.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
?  /usr/local/Cellar/docker/1.3.1: 9 files, 6.8M
==> Installing boot2docker
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/boot2docker
######################################################################## 100.0%
==> Pouring boot2docker-1.3.1.yosemite.bottle.3.tar.gz
==> Caveats
To have launchd start boot2docker at login:
    ln -sfv /usr/local/opt/boot2docker/*.plist ~/Library/LaunchAgents
Then to load boot2docker now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.boot2docker.plist
==> Summary
?  /usr/local/Cellar/boot2docker/1.3.1: 3 files, 7.2M

```

### バージョン確認

```
$ boot2docker -v
Boot2Docker-cli version: v1.3.1
Git commit: 57ccdb8
Usage: boot2docker [<options>] {help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|ip|shellinit|delete|download|upgrade|version} [<args>]
```

バージョン1.3.1が入りました。
Githubの[OSX用インストーラー](https://github.com/boot2docker/osx-installer/releases/tag/v1.3.1)も1.3.1だったので、これでいきます。

## 動作確認

### Boot2Dockerの初期化

```
$ boot2docker init
Latest release for boot2docker/boot2docker is v1.3.1
Downloading boot2docker ISO image...
Success: downloaded https://github.com/boot2docker/boot2docker/releases/download/v1.3.1/boot2docker.iso
	to /Users/honeniq/.boot2docker/boot2docker.iso
Generating public/private rsa key pair.
(以下、RSAのキー生成なので略)
```

場所はどこでもいいので``boot2docker init``を実行すると、VirtualBox上にBoot2Docker用のVMが作成されます。
VirtualBoxマネージャーを見てみると、「boot2docker-vm」という名前のVMが出来ていました。


### VMの起動

```
$ boot2docker up
Waiting for VM and Docker daemon to start...
.........................ooooooooooooooooo
Started.
Writing /Users/honeniq/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/honeniq/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/honeniq/.boot2docker/certs/boot2docker-vm/key.pem

To connect the Docker client to the Docker daemon, please set:
    export DOCKER_CERT_PATH=/Users/honeniq/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1
    export DOCKER_HOST=tcp://***.***.***.***:2376
```

これでさっき作ったVMが立ち上がります。

### 環境変数の設定

先ほどの``boot2docker up``のメッセージに、環境変数を3つ設定する指示がありました。
これをやっておかないと、以下のようなエラーが出て動作確認が失敗します。

```
$ docker run hello-world
2014/11/13 00:08:08 Post http:///var/run/docker.sock/v1.15/containers/create: dial unix /var/run/docker.sock: no such file or directory
```

というわけで、素直に3つ実行しておきましょう。

```
$ export DOCKER_CERT_PATH=/Users/honeniq/.boot2docker/certs/boot2docker-vm
$ export DOCKER_TLS_VERIFY=1
$ export DOCKER_HOST=tcp://***.***.***.***:2376
```
***の部分は実行環境のIPアドレスが入ります。


### Hello World

[Installing Docker on Mac OS X](https://docs.docker.com/installation/mac/#running-docker)
公式のガイドによると、``docker run hello-world``とすると動作確認できるらしい。

```
$ docker run hello-world
Hello from Docker.
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (Assuming it was not already locally available.)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

For more examples and ideas, visit:
 http://docs.docker.com/userguide/
```

「hello-world」っていうイメージをダウンロードしてきて立ち上げてるんですかね？
とにかく成功したようです。