Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

この記事について

公式サイトの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

チュートリアル終了です!
お疲れ様でした

リンク

Docker入門 #1 【Dockerとは】
Docker入門 #2 【Dockerチュートリアル】
Docker入門 #3 【WordPress環境構築】
Docker入門 #4 【CodeIgniter環境構築】
Docker入門 #5 【Ruby on Rails5環境構築】
Docker コマンドチートシート

wMETAw
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away