Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~

26,999 views

Published on

VMwareユーザのためのDocker入門。
DockerとVMwareのリンククローンやProject Fargo,CloudVolumesの比較や解説

Published in: Technology
  • Be the first to comment

VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~

  1. 1. VMwareユーザのための docker入門 工藤真臣 1
  2. 2. 免責事項 • 書いてあることが全部正しいこととは限りません • 間違ってても石を投げないでください 2
  3. 3. dockerって? • LinuxコンテナやUnionMountで実現するコンテナ型仮想化をいまどきの Git風に実装された管理ツール 3 カーネル空間 プ ロ セ ス プ ロ セ ス プ ロ セ ス カーネル空間 プ ロ セ ス プ ロ セ ス プ ロ セ ス プ ロ セ ス 非仮想化環境仮想コンテナ環境 カーネル空間カーネル空間 カーネル空間 プ ロ セ ス プ ロ セ ス プ ロ セ ス プ ロ セ ス 仮想マシン環境 Hypervisor
  4. 4. dockerのアーキテクチャ • dockerはあくまでも管理ツール • Linuxコンテナ自体が複数の技術から構成されている • 各コンポーネントごとに抽象化されているため、 様々な技術の組み合わせが可能 • 特にLinuxコンテナを便利に使えるように、コンテナのイメージの管理に 色々な配慮がされている • コンテナイメージを公開するためのレジストリが公開されていたり、 イメージを高速展開するための差分ディスク作成等が特徴 4
  5. 5. 便利なの? • 公開されているレジストリからCentOSのテンプレートの最新版を取得 # docker pull centos:latest • 取得済みイメージからコンテナを実行 # docker run centos:latest • 稼動中のコンテナからイメージを作成 # docker commit コンテナ名イメージ保存先 • 定義ファイルからコンテナを作成 # docker build コンテナ名イメージ保存先 • 作成したイメージをレジストリに公開する # docker push コンテナ名 5
  6. 6. 定義ファイルからイメージを作成 パラメータ用途 FROM テンプレートになるDockerイメージの指定 MAINTAINER 公開者の情報 RUN コマンドの実行 ADD ファイルやディレクトリを追加 CMD コンテナーの実行コマンド1 ENTRYPOINT コンテナーの実行コマンド2 WORKDIR 作業ディレクトリの指定 ENV 環境変数の設定 USER 実行ユーザの指定 EXPOSE ネットワークポートの公開 VOLUME 外部ボリュームのマウント 6
  7. 7. イメージがあれば 展開,ログオンまで 数秒 7
  8. 8. Immutable Infrastructure ぽくね? 8
  9. 9. Dockerやるな! 9
  10. 10. もしかして ESXiの ライバル?!! 10
  11. 11. コンテナ型って ホストのカーネルを共有して いるから 動作するOSに制限が あるんじゃ? 11
  12. 12. 12 仮想コンテナ環境 カーネル空間 プ ロ セ ス プ ロ セ ス プ ロ セ ス プ ロ セ ス カーネル空間カーネル空間 カーネル空間 プ ロ セ ス プ ロ セ ス プ ロ セ ス プ ロ セ ス 仮想マシン環境 Hypervisor CentOS Ubuntu CentOS Windows
  13. 13. 確かにOSが 色々必要だと いいかもね 13
  14. 14. でも仮想マシンって クローン作成するのも 時間がかかるよね? 何かあるの? 14
  15. 15. あるよ 15
  16. 16. リンククローン • テンプレートになるディスクを読み取り専用として、 書き込み可能な差分ディスクをレイヤリングして使用可能にする技術 16
  17. 17. さっきの図を使うとこんな感じ 17 カーネル空間 プ ロ セ ス プ ロ セ ス プ ロ セ ス カーネル空間 プ ロ セ ス プ ロ セ ス プ ロ セ ス プ ロ セ ス 非仮想化環境仮想コンテナ環境 仮想マシン環境 プ ロ セ ス Hypervisor リンククローン カーネル空間 プ ロ セ ス カーネル空間 プ ロ セ ス プ ロ セ ス カーネル空間 書き込み差分 テンプレート (読み取り専用)
  18. 18. 18 リンククローンって VDI専用じゃないの?
  19. 19. 19 vSphere単体でもできるよ New-VM -Name MyLinkedCloneVM1 -VM $mySourceVM -LinkedClone -ReferenceSnapshot $myReferenceSnapshot -ResourcePool $vmhost -Datastore $myDatastore とかvCenter Orchestratorとか
  20. 20. dockerのリンククローン • Linuxのカーネルに実装されている、Union Mount(AUFS),LVM Thin Provisioningを使ったりしてファイルシステムのレイヤリングを実現 20
  21. 21. さっきの図を使うとこんな感じ 21 カーネル空間 プ ロ セ ス プ ロ セ ス プ ロ セ ス Apache MySQL Apache Oracle カーネル空間 プ ロ セ ス プ ロ セ ス プ ロ セ ス プ ロ セ ス 非仮想化環境仮想コンテナ環境 仮想マシン環境 プ ロ セ ス Hypervisor カーネル空間 プ ロ セ ス カーネル空間 プ ロ セ ス プ ロ セ ス カーネル空間 テンプレート (読み取り専用) OSテンプレート (読み取り専用) OSテンプレート (読み取り専用) OSテンプレート (読み取り専用) リンククローン AUFS AUFS Apache MySQL Oracle
  22. 22. 22 差分展開できても 完全仮想化だよね? 起動時間は 早くならないよね?
  23. 23. 23 リンククローンて 複数のテンプレートを 合成できたっけ?
  24. 24. ぐぬぬぬ・・・ 24
  25. 25. 25
  26. 26. 26
  27. 27. リンククローンと 何が違う?おいしいの? 27
  28. 28. メモリも差分だけで展開可能 28
  29. 29. 29
  30. 30. あれっ複数ディスクから 1つのイメージ作る件は どうした? 30
  31. 31. 31
  32. 32. 32
  33. 33. Cloud Volumesとは • ThinAppのようにOSレイヤは吸収できないけど、dockerのAUFS相当な らもっとクールに実現できる 33
  34. 34. これでデータの割り当ては思いのまま 34
  35. 35. 35 Project FargoとCloud Volumeの組み合わせも可能
  36. 36. 36
  37. 37. でもライセンスは必要 37
  38. 38. 本日のまとめ docker vSphere Project Fargo Project Meteor 仮想化方式コンテナハイパーバイザーハイパーバイザーハイパーバイザー OS柔軟性 × Linuxカーネル依存 ◎ かなり自由 ◎ かなり自由 ◎ かなり自由 性能オーバヘッド ◎ 極小 △ 小~中 △ 小~中 △ 小~中 イメージの展開+起動 ○ 差分ディスク △ 差分ディスク ○ 差分ディスク+ 差分メモリ ○ 差分ディスク+ 差分ディスク アプリケーション柔軟性 ○ 展開後自動実行+ 定義ファイル × なし × なし ◎ 共有ディスク+ 差分ディスク 38 要するに適材適所

×