Mac OS X へのDockerのインストール方法


## Docker for Macについて

* Docker for Macというのがリリースされている (2016年8月末時点でv1.12.0)
 * 以下の説明は、古いと思われるので以下の公式サイトを見てインストールするのが良さげ
 * [Installation on Mac OS X](https://docs.docker.com/engine/installation/mac/)
 * ダウンロードとインストール方法は、こちら [Getting Started](https://docs.docker.com/docker-for-mac/)
 * インストールしてみた感じ、デザインも使い勝手も良さそう


### 現状のバージョンは、以下の通り (2016年8月末時点)

```
$ docker --version
Docker version 1.12.0, build 8eab29e

$ docker-compose --version
docker-compose version 1.8.0, build f3628c7

$ docker-machine --version
docker-machine version 0.8.0, build b85aac1
```


## 事前知識

以下、古い情報です。

* Linuxのみ対応していたDockerが、Mac OS Xにも対応した
* Dockerバージョン1.8(2015年8月)から、Boot2Docker(非推奨)ではなく、Docker ToolBox、Docker Machineを利用するようになった (既存のboot2dockerからのマイグレーションは可能)


## インストール方法のドキュメント

* 以下の公式ドキュメントを見てやるのが確実
* [Installation on Mac OS X](https://docs.docker.com/installation/mac/)
* homebrewからもインストールできるようだが、試してません。

## Docker Toolbox のダウンロード

[Docker Toolbox | docker](https://www.docker.com/toolbox)

### Docker Toolboxには、以下が入っている

* Docker Client
* Docker Machine
* Docker Compose (Mac only)
* Docker Kitematic
* VirtualBox

## インストーラー

* .pkgなインストーラーを使って、インストール

## Docker コンテナの実行

1. アプリケーションのフォルダーか、Launchpadへいく
2. "Docker Quickstart Terminal.app" を実行する
3. docker run hello-world をテストで実行

このQuickstartアプリケーションがすることは以下の3つ

1. ターミナルウィンドウを開く
2. もしdefaultと呼ばれるVMがない場合、それを作成し、VMを開始。
3. ターミナルの環境(env)を、このVMに設定

この時点で、dockerコマンドが利用できるようになる

## hello-worldを試す

```
$ docker run hello-world
```


## Quickstartがやることをコマンドで実行する場合

### 1. 新しいDocker VMを作成

defaultという名前のMVをVirtualBoxで作る
ディレクトリは、 ~/.docker/machine/machines/default

```
$ docker-machine create --driver virtualbox default
```

### 2. VM一覧の表示

```
$ docker-machine ls
NAME                ACTIVE   DRIVER       STATE     URL                         SWARM
default             *        virtualbox   Running   tcp://192.168.99.101:2376  
```

既に開始されているはずだが、開始されてない場合はdefaultという名前のVMをスタートする

```
$ docker-machine start default
```

### 3. VMを開始してから、以下のコマンドで環境設定を見ることができる

```
$ docker-machine env default

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.101:2376"
export DOCKER_CERT_PATH="/Users/user/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
```

### 4. シェルをdefaultのVMに繋ぐ

以下のコマンドで、上記の環境設定をシェルに設定

```
$ eval "$(docker-machine env default)"
```

### 5. セットアップを確認するため、hello-worldコンテナを実行

```
$ docker run hello-world
```


## Ubuntuで試してみる

```
docker run -it ubuntu:14.04 /bin/bash
```

* イメージに関するドキュメント
* [Get started with images](http://docs.docker.com/userguide/dockerimages/)

## イメージを探す

ubuntuイメージを探す

```
docker search ubuntu
``` 

## 変更をコミットする

```
docker commit container_id image_name
```

コンテナのIDは、以下のコンテナ一覧表示のコマンドで見る

```
docker ps –a
```

## dockerコマンドのチートシート

* [docker コマンド チートシート - Qiita](http://qiita.com/voluntas/items/68c1fd04dd3d507d4083)

## トラブル

色々ハマったので、トラブルはこちらにまとめました。

* [Mac でのDocker docker-machineのトラブルまとめ - Qiita](http://qiita.com/hshimo/items/c6d21203dd811e37cfb9)


## 参考記事

### 日本語の参考記事

* [Docker Toolbox for Mac OS X | harasou.github.io](http://harasou.github.io/2015/08/15/Docker-Toolbox/)
* [docker-machine - boot2docker コマンドとサヨナラする - Qiita](http://qiita.com/voluntas/items/dfc73e911be3fafeb954)
* [MacOSX - macにdocker toolboxをインストールする - Qiita](http://qiita.com/imtnd/items/8f0db6e938d55dfd4794)
* [boot2dockerからdocker-machineに変えた話 - Qiita](http://qiita.com/kohey18/items/b7e48ad70f97680041e5)
* [Docker Toolbox使ってみたけど、エラーでちょっとハマった話 - 継続的ブログ](http://akiza-cb.hatenablog.com/entry/2015/08/23/162414)
* [Macにdocker 1.8をインストールしてdocker run hello-worldまで - Qiita](http://qiita.com/salesone/items/84046a72b8472a18043f)