Dockerについて調べてみた
何故Dockerなのか
- 個人的に仮想環境にハマってる
- 普段はVagrantのみで開発検証をやってる
- ある日おもったのはDockerとVagrantってどっちが人気なんだろう
- Googleトレンドで調べてみた(というかそれしかしてない)
まずは日本でみてみる
次に世界でみてみる
リリース後一気に名を轟かせたDockerすげーな…
- Dockerについてざっくり調べてみるか
Dockerとは
- Docker社が開発したOSS
- コンテナ技術をつかった仮想環境
- コンテナ配布システム
Dockerの特徴(一部抜粋)
メリット ゲスト側とホスト側が同じカーネルを使う ゲストOS はホストの Kernel を直接使うためオーバーヘッドが小さくて高速 ゲストOS がそれぞれに Kernel を持たないため、Memory 消費量や Disk 消費量を節約できる 必要とする資源が少ないため、多くのゲストOSを立ち上げることが可能 Kernel を新しく起動する必要がないため、ゲストOSの起動が速い
デメリット 提供できるホストの種類が少ない 完全仮想化に比べて、管理者が学ぶべきことが多い
使い道 「使い捨てにする仮想マシンを動かす」や「大量に同一の構成を作るサービスの基盤構築」といった用途に強みがある Docker はその思想として「一度作ったコンテナに変更は加えない」という特徴があるので、「作った時と同じように動き続けることが求めれられる仮想マシン」にも向いてる。
http://docker.yuichi.com/about/strength/index.html
VagrantとDockerの違い(一部抜粋)
Docker の特徴 Linux 上でのみ動く (Windows, Mac 上では動かない) Linux のリソースを流用しつつも小さく閉じた環境を作ることができる 小さいので作っては捨て、が容易 例えるなら・・・
病院の中に超小型隔離施設を作るようなもの 隔離されてるものの、診察も受けられるし隔離施設ごとトイレにも行ける Docker コンテナをたくさん作る ≒ 病院内に超小型隔離患者がたくさん、みたいなイメージ
Vagrant の特徴 Windows / Mac / Linux それぞれにパッケージが用意されている 実際は VirtualBox や VMWare のような仮想環境を提供してくれるものとセットで使う 仮想環境としての Linux は、普通にインストールした Linux とほぼ変わらない構成 例えるなら・・・
病院の敷地の中に病院を建てるようなもの 内側の病院も、普通に診察できるし手術もできるし遜色なく利用できちゃう Vagrant で VM たくさん作る ≒ 外側の病院敷地内に中小病院をたくさん建てる、みたいなイメージ 複数建てるときは資金力がいる
http://girigiribauer.com/archives/1878