Upload
yamamoto-kazuhisa
View
1.329
Download
0
Embed Size (px)
DESCRIPTION
第4回 JAWS-UG 岡山で発表した内容です
Citation preview
Docker入門
2014.04.19
山本 和久
自己紹介• 株式会社リゾーム
• AWS
• Chef
• Jenkins
• Webistarno(Kibitsu)
• 好きなawsサービス
• SES
Dockerとは• コンテナ型仮想化ソフトウェア
• LXC
• AUFS
• boot2docker
• docker index
コンテナ型仮想化ソフトウェア
の、説明の前に
仮想化の種類
• ホスト型 • ハイパーバイザー型 • コンテナ型
ホスト型
• VMWare Fusion • VirtualBox • ParallelsDesktop
ハードウェア
ホストOS
仮想ハードウェア
仮想化ソフト
仮想ハードウェア
ゲストOS ゲストOS
アプリケーション アプリケーション
ホストOSのミドルウェアとして仮想化ソフトが動作する。
ホストOSのオーバーヘッドが大きい。
ハイパーバイザー型
• VMWare ESXi • Hyper-V
ハードウェア
仮想ハードウェア
仮想化ソフト
仮想ハードウェア
ゲストOS ゲストOS
アプリケーション アプリケーション
ホストOSを利用せず仮想化ソフトがOSより高い特権レベルで動
作する。
コンテナ型
• LXC • FreeBSD Jail • Docker
ハードウェア
bin/lib
ホストOS
bin/lib
アプリケーション アプリケーション
プロセスをグループ化して他のグループと隔離 グループ化したプロセスに対するリソース制限
コンテナ型は 「仮想化」というより 「隔離化」である。
コンテナ型のメリット• 起動が速い
• OSから見るとプロセスが立ち上がっているだけ • システムを動かす必要がない
• httpだけ動かす • コンテナにメモリを固定で割り当てなくてよい • 仮想マシンの上でも動作する
!
コンテナ型のデメリット
• 異なるOSのシステム/プログラムは動かせない
• Linux上でSolarisのバイナリは動かせない • カーネルに関わる操作はできない
!
LXCとは
• Docker以前からLinuxで採用されていたコンテナ型仮想化システム
• Ubuntuに依存
• Docker0.9より前のバージョンではLXCに依存していた
AUFSとは• 異なるファイルシステムのファイルやディレクトリを透過的に重ねて、ひとつのファイルツリーを構成できるファイルシステム
• OSのLiveCD • 光学メディアに書き込むべき内容をメモリ上に書き込む
• 元のファイル・システムの上に、差分データを被せて管理する仕組み
AUFSとは
http://docs.docker.io/en/latest/terms/layer/
boot2docker• Docker0.8からMacOS Xに正式対応
• MaxOS XはLinuxカーネルではない!
• CoreOSを利用した軽量LinuxをVagrantで起動する。
boot2docker$ brew update $ brew install docker boot2docker $ export DOCKER_HOST=tcp://localhost:4243 $ boot2docker start
そろそろ動かしてみたく なってきましたか?
demo
docker index• Dockerはディスクイメージの差分をGitのように扱える
• Githubのようなものがあってもよいのでは?
• public無料
• private有料
docker index
https://index.docker.io/plans/
Dockerを取り巻く状況• 開発環境
• Vagrantでよくないかい?
• Dockerは差分更新が可能なのが利点 • テスト環境
• アプリケーションと環境の依存度が高ければメリットあり
Dockerを取り巻く状況• 本番環境
• 機能ごとにコンテナを分けてネットワークで接続する • Webサーバー • アプリサーバー • RDB • KVS
Dockerを取り巻く状況• RDBはImmutable Infrastructureと相性が悪い…
• KVSに切り替えてアプリケーション側でがんばる?
まとめ• Dockerの上手な運用については模索中 • 面白い使い方を思いついたら情報共有してください > <
あっ!
awsの話をしてない?
Amazon Linux AMI 2014.03
はじめました!
おしまい