[Docker] Docker for Mac 入門
いろいろ変わっているようなので、手を動かしてみる。
WEB+DB PRESS Vol.86
posted with amazlet at 16.06.29
結城 洋志 沖元 謙治 足永 拓郎 林 健太郎 大竹 智也 内田 誠悟 伊藤 直也 中山 裕司 hiroki.o 泉水 翔吾 佐藤 太一 高橋 俊幸 西尾 泰和 舘野 祐一 中島 聡 橋本 翔 はまちや2 竹原 麻植 泰輔
技術評論社
売り上げランキング: 237,581
技術評論社
売り上げランキング: 237,581
前回、Vagrant を利用して導入してみた。
Docker for Mac, Windows が public beta リリースされたので動かしてみる。
以下の段取りになるのかなと想像。
VirtualBox(Vagrant) 上に Ubuntu をインストール。UbuntumacOS 上に Docker をインストール。- 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
アプリケーションとしてインストールされる。
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 を開くとあっさり表示される。
もっさ楽ですね。
Dockerfile
前回ファイルシステム絡みのエラーで失敗した build
に再挑戦してみる。
カレントディレクトリに 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"]
さらにサンプルファイルを用意する。
<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 をブラウザで開くとあっさり成功。