MacでDockerを試してみる

#注意
この内容は古いです。
[docker for mac](https://docs.docker.com/engine/installation/mac/)を使ったほうが楽です！　（2017/01追記)

#概要
Mac上でDockerを試します。
Docker初めて触るので誤ってるところあれば指摘いただけると幸いです。

Macはほぼつかってないまっさらな状態での構築を前提で記載してます。
インストールからOSを立ち上げてコンテナ起動+Apache起動させて動作確認を
やったところまでのメモになります。

概念などは関連URLなどみてみてください。

#必要な物
+ Virtualbox
+ Xcode
+ Docker
+ Homebrew

#環境
+ MacBook Pro Retina, 15-inch, Late 2013

#手順

###1 XCodeとHomebrewをインストール
Homebrew(macのパッケージ管理ツール)いれるためにXCodeが必要です。
[参考](http://qiita.com/_daisuke/items/d3b2477d15ed2611a058)にしたページ。
手順どおりインストールします。

###2 Virtualboxインストール

MacでVM(boot2docker)うごかすにはこれが必要です。
https://www.virtualbox.org/wiki/Downloads
ここからMac用のdmgをダウンロード。ダブルクリックして展開されたpkgをインストールします。

###3 dockerインストール 
```bash
brew update  #パッケージのアップデート
brew tap homebrew/binary
brew install docker boot2docker #dockerコマンドと起動用のVMイメージを入れます。
```
結果

```bash
takaito$ docker -v
Docker version 1.3.1, build 4e9bbfa
```
###4 isoイメージをダウンロード
```bash
boot2docker init
```

結果

```bash

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/takaito/.boot2docker/boot2docker.iso
Generating public/private rsa key pair.
Your identification has been saved in /Users/takaito/.ssh/id_boot2docker.
Your public key has been saved in /Users/takaito/.ssh/id_boot2docker.pub.
The key fingerprint is:
.
.
.
.
.

```
無事落とせたみたいです


###5 boot2dockerを起動
コンテナ起動させるためのVMを立ち上げます。

```bash
boot2docker up
```

確認

```bash
bmnm2827000371:~ takaito$ boot2docker status
running
```

virtualboxをみてみるとboot2dockerというVMができているのがわかります
![スクリーンショット 2014-11-17 2.51.44.png](https://qiita-image-store.s3.amazonaws.com/0/56598/ccddf6c4-3caa-35ca-2007-dc5da0f117c9.png)


クライアントからの接続のために.bash_profileに記載しておきます

```bash
  1 export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375 #boot2dockeripコマンドの結果を設定。
  2 export DOCKER_CERT_PATH=/Users/takaito/.boot2docker/certs/boot2docker-vm
  3 export DOCKER_TLS_VERIFY=1                                       
```

###6 イメージファイルを落としてみる。
docker pull [イメージ名]でイメージが落とせるみたいです。

```bash
docker pull centos:latest
docker pull ubuntu:latest
docker pull centos:centos6
```

結果

```bash
bmnm2827000371:~ takaito$ docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos                   centos6             70441cac1ed5        12 days ago         215.8 MB
centos                   latest              ae0c2d0bdc10        12 days ago         224 MB
ubuntu                   latest              5506de2b643b        3 weeks ago         199.3 MB

```

###7 コンテナ起動してみる
うごいた！

```bash
docker run -t -i centos /bin/bash
[root@e800b582c111 /]# 
```

###8 名前つけて立ち上げてみる(centos6)
```bash
docker run -t -i -d --name centos6 centos:centos6 /bin/bash

docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4aeafa796850        centos:centos6      "/bin/bash"         6 hours ago         Up 3 minutes                            centos6     

```

ちなみに立ち上げたコンテナに再接続するときは

```bash
docker attach [コンテナID]
```

コンテナ消すときは

```bash
docker rm [コンテナID]
```

全コンテナ消すとき

```bash
docker ps -a -q | xargs docker rm
```

###9 コンテナにApacheたてる

動作確認のためにApacheを入れてみてMacからみれるようにします。

centos6に接続

```bash
docker attach 4aeafa796850
```

centos6にapacheを入れる

```bash
yum update
yum install httpd
chkconfig httpd on
service httpd start
```

これでApacheが起動してます。

###10 新規コンテナにコミットする。
今のイメージ(centos6)を保存しておきます。(takaito/contos6-apache)

```bash
bmnm2827000371:~ takaito$ docker commit centos6 takaito/centos6-apache
c509635e752cc3fad69bc6727a7ca44876e4e3764492b010f290b88962d13ad6
```

結果

```bash
bmnm2827000371:~ takaito$ docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
takaito/centos6-apache   latest              c509635e752c        6 hours ago         283.8 MB
centos                   centos6             70441cac1ed5        12 days ago         215.8 MB
centos                   latest              ae0c2d0bdc10        12 days ago         224 MB
ubuntu                   latest              5506de2b643b        3 weeks ago         199.3 MB
```
takaito/centos6-apacheのイメージができてますね。TAGがへん。。

apache用のイメージを起動VMとポート80番でマッピングして起動する

```bash
takaito$ docker run -t -i -d -p 80:80 --name centos6-up takaito/centos6-apache /sbin/init
```

###11 Macから確認

macでdockerの起動IPを確認

```bash
bmnm2827000371:~ takaito$ boot2docker ip

The VM's Host only interface IP address is: 192.168.59.103
```

ブラウザでapacheがみれるか確認してみる
![スクリーンショット 2014-11-17 2.46.08.png](https://qiita-image-store.s3.amazonaws.com/0/56598/133e4d2c-394b-6d07-fbe4-2dea9c743c52.png)

みれましたね！

#感想
すごい便利ですね。
社内で複数アプリをdeployしたイメージを複製して
パフォーマンス検証とかしてみます。


#関連URL
http://qiita.com/_daisuke/items/d3b2477d15ed2611a058
http://dev.classmethod.jp/tool/docker/getting-started-docker-on-osx/
http://havelog.ayumusato.com/develop/server/e601-docker_on_mac.html
http://blog.co-mit.com/post/24/Mac%E3%81%ABDocker%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F