この記事について
公式サイトの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(白鯨くん)が微笑んでくれます
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にしたい場合は社内サーバーに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
チュートリアル終了です!
お疲れ様でした
リンク
Docker入門 #1 【Dockerとは】
Docker入門 #2 【Dockerチュートリアル】
Docker入門 #3 【WordPress環境構築】
Docker入門 #4 【CodeIgniter環境構築】
Docker入門 #5 【Ruby on Rails5環境構築】
Docker コマンドチートシート