[Docker] Docker for Mac 入門

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

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 Mac, Windows が public beta リリースされたので動かしてみる。
以下の段取りになるのかなと想像。

  1. VirtualBox(Vagrant) 上に Ubuntu をインストール。
  2. Ubuntu macOS 上に Docker をインストール。
  3. Docker 上でコンテナを実行する。

インストール

Docker for Mac をインストールする。

brew cask install する。

% 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 のバージョンが古いようで、アプリ起動後にバージョンアップを行った。
ターミナルで確認。導入がめっさ簡単だ。

% 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 をインストールして動作を確認する。

% 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 を作成する。

Dockerfile
FROM centos
MAINTAINER deadwood <deadwood@example.com>
# 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"]

さらにサンプルファイルを用意する。

index.html
<html>
Hello, Docker for Mac
</html>

build を実行する。

% 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

作成したイメージを元に、コンテナを実行する。

% 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