Dockerを使ってみよう
入門編
目次
1. 仮想環境とは
a. Xen, KVM, LXC
b. 特徴
2. Dockerとは
a. コンテナとは
b. コンテナの設定
c. docker-compose
3. まとめ
4. PLAN-Bさんについて
仮想環境とは
- 物理的なコンピュータ上のリソース(CPU, メモリ, ストレージ)を分割(分離)して利用
する技術
- ハイパーバイザ型(Xen, KVM)やホスト型、コンテナ型(LXC)がある
Xen, KVM, LXC
Xen, KVM LXC
Xen, KVM(特徴)
- ハイパーバイザ上に仮想環境
- 仮想環境ごとにゲストOS
- 時間がかかる
LXC(特徴)
- OSは共有
- プロセスごとに分離
- cgroups
- 時間がかからない
Dockerとは
- LXC(コンテナ型)仮想環境を管理するソフトウェア
- LXC仮想環境を簡単に作れる
- Dockerfileによって必要なリソースをまとめられる。
- 原則的に一つのコンテナに一つのアプリケーション
コンテナとは
- アプリケーションとその依存環境の入れ物
- 実行環境や命令など複数のファイルシステムをひとまとめにしたもの
実行環境
命令1
命令2
命令3
OS
コンテナの設定
- Dockerイメージ
- Dockerfile
- イメージとして保存、再利用が可能
Dockerイメージ
- Dokerfileによって生成されるコンテナの設定
- Docker Hub (https://hub.docker.com/)
様々なミドルウェアやアプリケーションがインストール済みのイメージが多数
ex) Ubuntu, WordPress, MySQL
もしUbuntuのイメージを元にコンテナを作成したかったら
         でイメージを取り込み
でubuntu環境コンテナを作成、使用
$docker pull ubuntu
$docker run -it --name container1 ubuntu bash
- $docker pull イメージ名 Dockerイメージの取得
- $docker images 取得したイメージの一覧表示
- $docker run -it イメージ名 bash イメージからコンテナ作成、起動
- $docker commit          新しいイメージを作る
- $docker push            イメージをDocker Hubに保存
- $docker start コンテナ名 既存コンテナを起動する
- $docker stop コンテナ名 コンテナを止める
- $docker ps 起動中コンテナ一覧表示
参考: Dockerコマンドチートシート
http://qiita.com/voluntas/items/68c1fd04dd3d507d4083
Dockerfile
- Makefileのようなもの
- Dockerfileに記述してある処理を実行してくれる(イン
フラのコード化)
$docker build -t イメージ名 ./
でイメージ作成
Ubuntu Official Dockerfile
https://github.com/tianon/docker-brew-ubuntu-core/blob/8984e91c47abd923cf214
fb7232b044106b39337/artful/Dockerfile
docker-compose
- コンテナ同士を連携させるツール
- yml形式のファイルベースで行う
- docker-compose.ymlでビルド、実行をする
でビルドをし、
          でymlに書かれているコンテナを起動する。
docker-compose コマンドまとめ
http://qiita.com/aild_arch_bfmv/items/d47caf37b79e855af95f
$docker-compose build
$docker-compose run
docker-compose.yml
- 3つのコンテナ
1. nginx-proxy
2. db
3. gigapp
nginx = Webサーバー
db = データベース
gigapp = アプリケーション
まとめ
- コンテナ型仮想環境の管理ツール
- ビルドやデプロイが速い
- 環境構築が手軽
- 環境の高い再現性 (Dockerfile、イメージ、Docker Hub)
- docker-composeで複数コンテナ管理を簡単に
Good is good.
We provide opportunities to the SEKAI by fusing technology and ideas.
テクノロジーとクリエイティブでセカイをより良くする
お問い合わせはこちらから
https://giginc.co.jp/contact/

Dockerを使ってみよう