Macでboot2dockerからdocker-machineに移行

# Macでboot2dockerからdocker-machineに移行
自分は開発する際に、vagrantをメイン使いとしていて、インフラのテストなんかはdockerでtest-kitchenするという使い分けをしていたのだが、久しくdocker触っていなかったら、気が付いたらこんなメッセージが出ていた。

![booot2dockerでdocker-machineに移行してというアラート表示](https://qiita-image-store.s3.amazonaws.com/0/74153/938027a7-1bd3-becd-e1c5-980969a695ab.png)

**さようでございますか**というわけで、docker-machineに移行してみたので自分メモ。

## 最終系としてはこうなります
赤色の部分が青色に。
![boot2dockerからdocker-machine移行した場合のアーキテクチャ](https://qiita-image-store.s3.amazonaws.com/0/74153/a70c3877-ccb2-bc82-d301-6055d923bd7c.png)

## dockerバージョン確認
自分の環境は以下のとおり。
![image](https://qiita-image-store.s3.amazonaws.com/0/74153/7820ed65-b423-b129-84ff-d75f72d8f1c9.png)

## brewでdocker-machineインストール(5分)
### boot2docker確認
```
$ brew list | grep boot2docker
boot2docker
```
はいはい、いますね。

```
$ boot2docker status 
running
```
当然、boot2dockerが動いていますね。

### boot2docker停止
#### コンテナの確認

```
% docker ps -a                                                                                                                                              CONTAINER ID        IMAGE                        COMMAND               CREATED             STATUS                           PORTS                   NAMES
d38355a0d607        centos65-nginx-unicorn-rvm   "/usr/sbin/sshd -D"   59 minutes ago      Up 59 minutes                    0.0.0.0:32770->22/tcp   boring_poitras
```

#### boot2docker停止
```
$ boot2docker stop
$ boot2docker config | grep VM                                                                                                                             
VM = "boot2docker-vm"
```

![virtualboxでboot2docker-vmがシャットダウンされている](https://qiita-image-store.s3.amazonaws.com/0/74153/2d56b56e-8259-b813-baad-e5bc3cef8743.png)
VirtualBox上でもVMマシンが電源オフになりました。

#### docker-machineインストール

```
$ brew install docker-machine
```

## boot2dockerからdocker-machineへdockerホスト移行(5分)

```
$ docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm docker-host1
```

![macでboot2dockerからdocker-machineにdocker-hostを移行している最中](https://qiita-image-store.s3.amazonaws.com/0/74153/46325916-ace0-1982-c3ee-c6eece058f6f.png)

## docker-machine起動確認(5分)

```
$ docker-machine env docker-host1
```
![docker-machineの環境変数](https://qiita-image-store.s3.amazonaws.com/0/74153/7afbce6f-6ee1-f6ce-8981-bd6e1301e2a4.png)

#### 環境変数のセット
```
eval "$(docker-machine env docker-host1)"
```

#### dockerコンテナの確認

```
% docker ps -a
CONTAINER ID        IMAGE                        COMMAND               CREATED             STATUS                     PORTS               NAMES
cd938b401ff8        centos65-nginx-unicorn-rvm   "/usr/sbin/sshd -D"   6 hours ago         Exited (255) 3 hours ago                       develop
```

![docker-hostが起動している](https://qiita-image-store.s3.amazonaws.com/0/74153/c505b7bb-d896-89aa-3527-656740a5b9b9.png)
VirtualBox上でもVMマシンが正常稼働しています。

#### 接続確認

```
$ docker-machine ssh docker-host1                                                                                                                                                   ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.9.1, build master : cef800b - Fri Nov 20 19:33:59 UTC 2015
Docker version 1.9.1, build a34a1d5
```

## まとめ
雑にまとめるとboot2dockerからdocker-machineへ移行するのは
時間がかからないので、移行すべし。今回は説明しないけど
boot2dockerと違って、複数のdockerホストを構築出来るし、docker-composeが結構頭よくて便利です。

- 移行自体は意外と時間かからない
- 今回説明してないけどdocker-composeとか便利
- コンテナ立ち上がるの早い

今後はdockerネタも手元にmarkdownたくさんあるので
小出しにアップしていこうっと。