docker① ドッカーってなに

4月のあたまに、近藤さんと前佛さんが時代はgithub、docker、nginxだと教えてくださしました。
帰宅途中にぐぐり、その3つの便利さはわかったのですが、何が凄いのかはいまいちピンと来ません・・・

そんなある日、まあ今日なのですが、会社の定例でdockerについてお話を伺う機会がありました。
自分なりの解釈にすぎませんが(つまり合っているかどうかが分からないということ!)、簡単にまとめてみます:)

■dockerとは?
ハイパーバイザーのはたらき + 構成を組み易くするソフト
けれどもハイパーバイザーとは違う
jailともchrootコマンドとも違う
Apのコンテナ実行環境
LXC
技術要素:AUFS ファイルシステム ディスク容量を食わない 起動時間短縮

■コンテナとは?
OSミドルウェアの実行環境
仮想マシンとは違った操作
開発環境 仮想マシンを立ち上げるのはdockerのほうが早い

■何が変わる?
仮想マシンのようなものではなく HWが見えない部分で仮想化ができる
・OSのマシンイメージをつくることもできる
・サーバ活況構築の簡易化
・インフラ環境の抽象化:インフラ層が何でも良くなる(どのクラウドでもオッケー)
・同じコマンドを使って、移動先でも同じ動作が出来る

■どこかがおちたら自動で復旧はえきるのか?
マシン単位ではなく特定のアプリケーションで可能

■課題
HWの管理は可能か:dockerの管理するところではない
リソース管理鍵:監視が必要
クラスタ全体の管理は自分で実装
物理マシン一台以上はdocker自身が実現できない←?

■その他
クラウド間をまたいでファイルを利用できるしくみがdocker、ではその利点は?:クラウド間のイメージ移行ができる;同じ環境で
coreOS:dockerがデフォルトではいっている
クラウドごとに同じ環境が作れるようになる
イメージファイルを書き換える必要がない
クラウドや仮想化マシンは実は昔からあった、今回もそんな感じなのではないか:うーんそうとも言える
図式化すると、層がひとつなくなっていることが一目で分かります。ハイパーバイザーが要らないのか~。

brg5126

ただ、これだけではコンテナのコンテナっぽさが伝わってきませんね。
具体例をだすと、

brg5121

というかんじ。今まではデータベースをコピーして、apachephpはインストールしなおしていましたが、その手間が省けると。
なるほど、それなら便利さが分かります。

 

参考

http://qiita.com/curseoff/items/a9e64ad01d673abb6866

http://2013.8-p.info/japanese/06-22-docker.html

http://www.slideshare.net/nekoruri/20140328-docker-15min

http://www.infoq.com/jp/articles/docker-containers