2016年 09月 20日

Docker for Macチュートリアル

この記事について

公式サイトのGetting Started with Docker for Macの内容です


Windows版は以下です
Getting Started with Docker for Windows


とりあえずインストールしてwebサーバー立ててみようぜ!という意図のもと書いてます

インストール

(すでにhomebrewやDocker Toolboxでインストールしている場合はアンインストールしてください)

Mac
https://www.docker.com/products/docker#/mac

Windows
https://www.docker.com/products/docker#/windows

インストールが環境するとマスコットの Moby-Dick(白鯨くん)が微笑んでくれます
docker1

Dockerコンポーネント

Dockerはコア機能を提供する「Docker Engine」を中心に「イメージの作成→公開→コンテナ実行」を行うためのコンポーネント(部品)が提供されています
主なコンポーネントは次の通り

Docker Engine(Dockerのコア機能)

Docker イメージの生成やコンテナの軌道などを行うためのコア機能
Dockerコマンドの実行やDockerFileによるイメージの生成を行う


Docker Machine(Docker実行環境構築)

ハイパーバイザやVirtualBox、AWSやAZUREなどのクラウド環境などにDockerの実行環境をコマンドで自動生成するツール


Docker Compose(複数コンテナの一元管理)

複数コンテナの構成情報をコードで定義して、コマンドを実行することでアプリケーションの実行環境を構成するコンテナ群を一元管理するためのツール


Docker Registry(イメージの公開・共有)

コンテナの元となるイメージを公開・共有する為のレジストリ機能
Docker公式のレジストリサービスであるDocker Hubもこの機能を使用している


Docker Hub(Docker公式のレジストリ)

CentOS・nginxなどの公式イメージはこのレジストリから取得する
publicなので多くのユーザーによる自作のイメージが公開されている
イメージをprivateにしたい場合はAWSとか社内のサーバーにDocker Registryを立て、pushする流れになる

Dockerの情報

コンテナ・イメージ数、ユーザ情報など現在の情報表示

$ docker info

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.12.0
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 0
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
・
・
・

各ツールのバージョンを確認

Docker本体

$ docker --version

Docker version 1.12.0, build 8eab29e

Docker Compose(複数コンテナの一元管理)

複数コンテナの構成情報をコードで定義して、コマンドを実行することでアプリケーションの実行環境を構成するコンテナ群を一元管理するためのツール

$ docker-compose --version

docker-compose version 1.8.0, build f3628c7

Docker Machine(Docker実行環境構築)

VirtualBoxをはじめ、AWSやAZUREなどのクラウド環境などにDockerの実行環境をコマンドで自動生成するツール

$ docker-machine --version

docker-machine version 0.8.0, build b85aac1

webサーバーを立てる

「webserver」という名前でコンテナを立て、nginxのイメージを公式からpullしています

# 8080番にしてます
$ docker run -d -p 8080:80 --name webserver nginx

Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
357ea8c3d80b: Pull complete
:

http://localhost:8080
上記にアクセス可能となります


Unable to find image 'nginx:latest' locally
初回起動はローカルにイメージがなく、公式からpullしているので起動に5秒ほどかかりますが
2回目からはローカルに保存したイメージを使用する為、高速な起動が可能になります

コンテナ一覧

$ docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                           NAMES
c5e7400c19c9        nginx               "nginx -g 'daemon off"   1 minutes ago       Up 1 minutes        443/tcp, 0.0.0.0:8080->80/tcp   webserver

コンテナの終了

指定したdockerコンテナを終了

# CONTAINER IDでkill
$ docker kill c5e7400c19c9
or
# NAMESでkill
$ docker kill webserver

コンテナの削除

指定したdockerコンテナを削除

$ docker rm c5e7400c19c9
or
$ docker rm webserver

さいごに

チュートリアル終了!


お疲れ様でした




Yoshida e070c695df5d4bbe8e6b800136356dbfb59e78836e5658e2b5f4e4e33df4a66d
Ryo

グルメ旅とお酒が大好きなプログラマー
大阪界隈の勉強会運営もやってます。
趣味はボルダリング

follow us in feedly このエントリーをはてなブックマークに追加