docker-machine 触ってみた

# はじめに

docker-machine なるものが出てきたので、触ってみました。幸いなことに素晴らしいリファレンスもあり、導入には困りませんでした。

- [Docker Machine リファレンス](http://qiita.com/spesnova/items/073dd64a8a1d580d9ae9)

# インストール

環境はこちら。ダウンロードは[公式](https://docs.docker.com/machine/)からが確実かと思います。

- OS X Yosemite(10.10.2)
- VirtualBox 4.3.24

```bash
% sudo mv ~/Downloads/docker-machine_darwin-amd64 /usr/bin/docker-machine
% sudo chmod +x /usr/bin/docker-machine
% docker-machine -v
docker-machine version 0.1.0
```

docker自体はbrewでサクッとインストール。

```bash
% brew install docker
```

# docker ホストの作成

```bash
% docker-machine ls
NAME   ACTIVE   DRIVER   STATE   URL   SWARM
```

```bash
% docker-machine create --driver virtualbox dev
INFO[0000] Creating CA: /Users/koide/.docker/machine/certs/ca.pem
INFO[0000] Creating client certificate: /Users/koide/.docker/machine/certs/cert.pem
INFO[0001] Downloading boot2docker.iso to /Users/koide/.docker/machine/cache/boot2docker.iso...
INFO[0012] Creating SSH key...
INFO[0012] Creating VirtualBox VM...
INFO[0017] Starting VirtualBox VM...
INFO[0017] Waiting for VM to start...
INFO[0050] "dev" has been created and is now the active machine.
INFO[0050] To point your Docker client at it, run this in your shell: $(docker-machine env dev)
```

```bash
% docker-machine ls
NAME   ACTIVE   DRIVER       STATE     URL                         SWARM
dev    *        virtualbox   Running   tcp://192.168.99.100:2376
```

# 環境変数の確認

```bash
% docker-machine env dev
export DOCKER_TLS_VERIFY=yes
export DOCKER_CERT_PATH=/Users/koide/.docker/machine/machines/dev
export DOCKER_HOST=tcp://192.168.99.100:2376
```

```bash
% docker-machine config dev
--tls --tlscacert=/Users/koide/.docker/machine/machines/dev/ca.pem --tlscert=/Users/koide/.docker/machine/machines/dev/cert.pem --tlskey=/Users/koide/.docker/machine/machines/dev/key.pem -H="tcp://192.168.99.100:2376"
```

リファレンスにならって、今回はexportコマンドを実行せずに、docker-machine configコマンドを使用してみる。

# docker コマンドの実行

```bash
% docker $(docker-machine config dev) ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
```

# docker-compose でコンテナ作成

ここまで順調なので（フラグ）、
作成したdocker-machineを使って、docker-composeでコンテナを作成してみる。

```bash
% docker-machine ssh dev
                        ##        .
                  ## ## ##       ==
               ## ## ## ##      ===
           /""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
           \______ o          __/
             \    \        __/
              \____\______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.5.0, build master : a66bce5 - Tue Feb 10 13:31:27 UTC 2015
Docker version 1.5.0, build a8a31ef
docker@dev:~$
```

[公式](http://docs.docker.com/compose/install/)にならって、docker-composeをインストール。

```bash
docker@dev:~$ curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
docker@dev:~$ chmod +x /usr/local/bin/docker-compose
```

バージョン確認。

```bash
docker@dev:~$ docker-compose --version
-sh: docker-compose: not found
```

あれ？

```bash
docker@dev:~$ ls -l /usr/local/bin/docker-compose
-rwxr-xr-x    1 docker   staff      5257430 Mar 10 02:06 /usr/local/bin/docker-compose
docker@dev:~$ which docker-compose
/usr/local/bin/docker-compose
```

???
何故か起動できない…(´・ω・`)

## 原因

調べてみると、現状boot2dockerでdocker-composeが使えないみたい。残念ー

[docker-compose not found in boot2docker](https://github.com/docker/compose/issues/1032 )

# おわりに

docker-composeは残念でしたが、思っていたよりも簡単にdocker環境を構築出来ました。
導入が手軽なので自分のような情弱エンジニアには大変助かっております。