魔法使いの卵

WEBエンジニアの卵の成長記録

Dockerについて調べてみた

何故Dockerなのか

  • 個人的に仮想環境にハマってる
  • 普段はVagrantのみで開発検証をやってる
  • ある日おもったのはDockerとVagrantってどっちが人気なんだろう
  • Googleトレンドで調べてみた(というかそれしかしてない)
  • まずは日本でみてみる f:id:raichel:20150829181845p:plain

  • 次に世界でみてみる f:id:raichel:20150829181907p:plain

リリース後一気に名を轟かせた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 それぞれにパッケージが用意されている 実際は VirtualBoxVMWare のような仮想環境を提供してくれるものとセットで使う 仮想環境としての Linux は、普通にインストールした Linux とほぼ変わらない構成 例えるなら・・・

病院の敷地の中に病院を建てるようなもの 内側の病院も、普通に診察できるし手術もできるし遜色なく利用できちゃう VagrantVM たくさん作る ≒ 外側の病院敷地内に中小病院をたくさん建てる、みたいなイメージ 複数建てるときは資金力がいる

http://girigiribauer.com/archives/1878

おもったこと

  • DockerとVagrantを組み合わせたら、かなりいいかんじになる気がする
  • 仮想環境に複数のコンテナをぶっこんで色々できるんじゃねーの!!とかおもったりした
  • あと仮想環境下でIDE使い方知らないからVagrantの共通フォルダでIDEとかつかえるんじゃねーのとか
  • なんかとにかく色々な可能性をかんじてる(全然さわってないから詳しいことしらないけど)
  • というか仮想環境ってロマンばっかでたのしい
  • 知見がまだ全然ないのでこのへんも今後は積極的に勉強していきたい
  • これから触っていって絶望するのか興奮するのかは自分次第な気がする