Docker入門 ※ハンズオンあり
※スライドから転用です。
Dockerとは
Dockerはコンテナ型の仮想化環境を提供するオープンソースソフトウェアである
VMware製品などの完全仮想化を行うハイパーバイザ型製品と比べて、ディスク使用量は少なく、仮想環境 (インスタンス) 作成や起動は速く、性能劣化がほとんどないという利点を持つ。
※Wikipediaより
いきなり製品紹介されても・・・
従来の基盤から考えてみよう
オンプレミスでの開発
- サーバーを調達
- OSのインストール・設定
- ミドルウェア等のインストール
- アプリケーションをデプロイ
冗長化する場合、
新しくサーバーを調達する必要がある
しかも、
1台ずつ同じ設定をしなければならない
仮想サーバーの場合
- OSのインストール・設定
- ミドルウェア等のインストール
- アプリケーションをデプロイ
冗長化する場合
1台サーバーがあればその中に複数台構築が可能
複製も楽に行える
※Docker公式の画像を拝借
オンプレ・仮想
共通の問題点
環境差異による障害
→検証環境では動いたのに本番では動かない
😈インストール漏れ
😈設定漏れ
😈設定漏れ
そこで、😮
Docker使えば解決できる!!
Dockerでできること
検証環境の構成をそのまま本番へ展開
→環境差異がなくなる環境をコードで管理
→どの環境でも同じ手順でインストール・設定
つまり、
検証した環境をリリースできる!
インストール漏れもなくなる!
具体的な開発例
従来の場合
Dockerを使用する場合
- アプリ開発、Dockerfileの作成
- サーバー構築・設定
- Dockerをインストール
- Docker上にコンテナ(アプリ)を展開
★ミドルウェアの構築が不要に!!!
★環境差異がなくなる!!!
Dockerの開発環境
手軽に試したい場合
Play with Docker
インストールの手間がないため、手軽に試せる
https://labs.play-with-docker.com/
実際に試してみよう
アカウント作成・ログイン
アカウントがない場合は以下から作成
インスタンス作成
起動すると以下の画面が表示される
Docker上でNginxを使う
以下のコマンドを実行
$ docker run --name nginx-study -d -p 80:80 nginx
説明
docker run ・・・コンテナの実行
--name ・・・コンテナに名前を付与
- -d ・・・デーモン実行
- -p ・・・ポートフォワーディング
起動を確認
$ docker ps
画面表示確認
たったこれだけ!!!
コンテナの停止・削除
# コンテナ停止 $ docker stop nginx-study # コンテナ削除 $ docker stop nginx-study
作成したHTMLを表示する
# サンプルHTMLを取得 $ git clone https://github.com/MasanoriIwakura/docker-nginx.git # 実行 $ docker run --name nginx-study -d -p 80:80 \ -v ${PWD}/docker-nginx/html:/usr/share/nginx/html nginx
こんな感じで表示される
次回予告
Docker Composeを使って複数コンテナを連携してみよう!