Docker入門 #2 【Dockerチュートリアル】

この記事について

公式サイトの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(白鯨くん)が微笑んでくれます
enter image description here

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

チュートリアル終了!

0 件のコメント :

コメントを投稿