Docker入門

31
Docker入門 2014.04.19 山本 和久

description

第4回 JAWS-UG 岡山で発表した内容です

Transcript of Docker入門

Page 1: Docker入門

Docker入門

2014.04.19

山本 和久

Page 2: Docker入門

自己紹介• 株式会社リゾーム

• AWS

• Chef

• Jenkins

• Webistarno(Kibitsu)

• 好きなawsサービス

• SES

Page 3: Docker入門
Page 4: Docker入門

Dockerとは• コンテナ型仮想化ソフトウェア

• LXC

• AUFS

• boot2docker

• docker index

Page 5: Docker入門

コンテナ型仮想化ソフトウェア

Page 6: Docker入門

の、説明の前に

Page 7: Docker入門

仮想化の種類

• ホスト型 • ハイパーバイザー型 • コンテナ型

Page 8: Docker入門

ホスト型

• VMWare Fusion • VirtualBox • ParallelsDesktop

ハードウェア

ホストOS

仮想ハードウェア

仮想化ソフト

仮想ハードウェア

ゲストOS ゲストOS

アプリケーション アプリケーション

ホストOSのミドルウェアとして仮想化ソフトが動作する。

ホストOSのオーバーヘッドが大きい。

Page 9: Docker入門

ハイパーバイザー型

• VMWare ESXi • Hyper-V

ハードウェア

仮想ハードウェア

仮想化ソフト

仮想ハードウェア

ゲストOS ゲストOS

アプリケーション アプリケーション

ホストOSを利用せず仮想化ソフトがOSより高い特権レベルで動

作する。

Page 10: Docker入門

コンテナ型

• LXC • FreeBSD Jail • Docker

ハードウェア

bin/lib

ホストOS

bin/lib

アプリケーション アプリケーション

プロセスをグループ化して他のグループと隔離 グループ化したプロセスに対するリソース制限

Page 11: Docker入門

コンテナ型は 「仮想化」というより 「隔離化」である。

Page 12: Docker入門

コンテナ型のメリット• 起動が速い

• OSから見るとプロセスが立ち上がっているだけ • システムを動かす必要がない

• httpだけ動かす • コンテナにメモリを固定で割り当てなくてよい • 仮想マシンの上でも動作する

!

Page 13: Docker入門

コンテナ型のデメリット

• 異なるOSのシステム/プログラムは動かせない

• Linux上でSolarisのバイナリは動かせない • カーネルに関わる操作はできない

!

Page 14: Docker入門

LXCとは

• Docker以前からLinuxで採用されていたコンテナ型仮想化システム

• Ubuntuに依存

• Docker0.9より前のバージョンではLXCに依存していた

Page 15: Docker入門

AUFSとは• 異なるファイルシステムのファイルやディレクトリを透過的に重ねて、ひとつのファイルツリーを構成できるファイルシステム

• OSのLiveCD • 光学メディアに書き込むべき内容をメモリ上に書き込む

• 元のファイル・システムの上に、差分データを被せて管理する仕組み

Page 16: Docker入門

AUFSとは

http://docs.docker.io/en/latest/terms/layer/

Page 17: Docker入門

boot2docker• Docker0.8からMacOS Xに正式対応

• MaxOS XはLinuxカーネルではない!

• CoreOSを利用した軽量LinuxをVagrantで起動する。

Page 18: Docker入門

boot2docker$ brew update $ brew install docker boot2docker $ export DOCKER_HOST=tcp://localhost:4243 $ boot2docker start

Page 19: Docker入門

そろそろ動かしてみたく なってきましたか?

Page 20: Docker入門

demo

Page 21: Docker入門

docker index• Dockerはディスクイメージの差分をGitのように扱える

• Githubのようなものがあってもよいのでは?

• public無料

• private有料

Page 22: Docker入門

docker index

https://index.docker.io/plans/

Page 23: Docker入門

Dockerを取り巻く状況• 開発環境

• Vagrantでよくないかい?

• Dockerは差分更新が可能なのが利点 • テスト環境

• アプリケーションと環境の依存度が高ければメリットあり

Page 24: Docker入門

Dockerを取り巻く状況• 本番環境

• 機能ごとにコンテナを分けてネットワークで接続する • Webサーバー • アプリサーバー • RDB • KVS

Page 25: Docker入門

Dockerを取り巻く状況• RDBはImmutable Infrastructureと相性が悪い…

• KVSに切り替えてアプリケーション側でがんばる?

Page 26: Docker入門

まとめ• Dockerの上手な運用については模索中 • 面白い使い方を思いついたら情報共有してください > <

Page 27: Docker入門

あっ!

Page 28: Docker入門

awsの話をしてない?

Page 29: Docker入門

Amazon Linux AMI 2014.03

Page 30: Docker入門

はじめました!

Page 31: Docker入門

おしまい