[Docker] Docker for Mac 入門
いろいろ変わっているようなので、手を動かしてみる。
 
 [markdown]
技術評論社
売り上げランキング: 237,581
前回、Vagrant を利用して導入してみた。
> * [Docker for Linux 入門 | deadwood](https://www.d-wood.com/blog/2016/06/30_8231.html)
Docker for Mac, Windows が public beta リリースされたので動かしてみる。
 以下の段取りになるのかなと想像。
1. VirtualBox(Vagrant) 上に Ubuntu をインストール。
 2. Ubuntu macOS 上に Docker をインストール。
 3. Docker 上でコンテナを実行する。
## インストール
Docker for Mac をインストールする。
> * [Getting Started](https://docs.docker.com/docker-for-mac/)
`brew cask install` する。
“`prettyprinted
 % brew cask info docker
 docker: 1.12.0.9493
 Docker for Mac
 https://www.docker.com/products/docker
 Not installed
 https://github.com/caskroom/homebrew-cask/blob/master/Casks/docker.rb
 ==> Contents
 Docker.app (app)
 % brew cask install docker
 “`
アプリケーションとしてインストールされる。

Cask のバージョンが古いようで、アプリ起動後にバージョンアップを行った。
 ターミナルで確認。導入がめっさ簡単だ。
“`prettyprinted
 % docker version
 Client:
 Version:      1.12.0-rc2
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   906eacd
 Built:        Fri Jun 17 20:35:33 2016
 OS/Arch:      darwin/amd64
 Experimental: true
 Server:
 Version:      1.12.0-rc2
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   a7119de
 Built:        Wed Jun 29 10:03:33 2016
 OS/Arch:      linux/amd64
 Experimental: true
 “`
前回と同じく、nginx をインストールして動作を確認する。
“`prettyprinted
 % docker run -d -p 8080:80 nginx
 Unable to find image ‘nginx:latest’ locally
 latest: Pulling from library/nginx
 51f5c6a04d83: Pull complete
 a3ed95caeb02: Pull complete
 51d229e136d0: Pull complete
 bcd41daec8cc: Pull complete
 Digest: sha256:0fe6413f3e30fcc5920bc8fa769280975b10b1c26721de956e1428b9e2f29d04
 Status: Downloaded newer image for nginx:latest
 b6a486da7ad33b505414808b083aba016e6666f48c82ac0ace46237c7e1d2143
 “`
localhost:8080 を開くとあっさり表示される。

もっさ楽ですね。
## Dockerfile
前回ファイルシステム絡みのエラーで失敗した `build` に再挑戦してみる。
 カレントディレクトリに Dockerfile を作成する。
“`text:Dockerfile
 FROM centos
 MAINTAINER deadwood 
 # RUN: build するときに実行される
 RUN yum install -y httpd
 # ADD: host に存在するファイルを取り込む
 ADD ./index.html /var/www/html/
 # EXPOSE: Port 80 を開ける
 EXPOSE 80
 # CMD: RUN するときに実行される
 CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]
 “`
さらにサンプルファイルを用意する。
“`html:index.html
 Hello, Docker for Mac
 “`
`build` を実行する。
“`prettyprinted
 % docker build -t “deadwood/httpd” .
 % docker images
 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
 deadwood/httpd      latest              b972b8b9a627        29 seconds ago      316.7 MB
 centos              latest              904d6c400333        3 weeks ago         196.8 MB
 nginx               latest              0d409d33b27e        4 weeks ago         182.8 MB
 “`
作成したイメージを元に、コンテナを実行する。
“`prettyprinted
 % docker run -dp 8080:80 deadwood/httpd
 0080d49f255931620dfedb295ff72f60b3cce77aa7066b349a6c49d357d03a20
 % docker ps
 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
 0080d49f2559        deadwood/httpd      “/usr/sbin/httpd -D F”   5 seconds ago       Up 4 seconds        0.0.0.0:8080->80/tcp   cranky_mayer
 “`
localhost:8080 をブラウザで開くとあっさり成功。
![]()
 [/markdown]

