[Docker] Docker for Mac 入門

いろいろ変わっているようなので、手を動かしてみる。

[markdown]

WEB+DB PRESS Vol.86
WEB+DB PRESS Vol.86

posted with amazlet at 16.06.29
結城 洋志 沖元 謙治 足永 拓郎 林 健太郎 大竹 智也 内田 誠悟 伊藤 直也 中山 裕司 hiroki.o 泉水 翔吾 佐藤 太一 高橋 俊幸 西尾 泰和 舘野 祐一 中島 聡 橋本 翔 はまちや2 竹原 麻植 泰輔
技術評論社
売り上げランキング: 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
“`

アプリケーションとしてインストールされる。

2016-06-30_docker_02

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 を開くとあっさり表示される。

2016-06-30_docker_03

もっさ楽ですね。

## 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 をブラウザで開くとあっさり成功。

2016-06-30_docker_04
[/markdown]