【社内勉強会】Docker入門
Upcoming SlideShare
Loading in...5
×
 

【社内勉強会】Docker入門

on

  • 1,491 views

 

Statistics

Views

Total Views
1,491
Views on SlideShare
736
Embed Views
755

Actions

Likes
3
Downloads
13
Comments
0

4 Embeds 755

http://tech.lexues.co.jp 716
http://dev.eventdots.jp 30
http://s.deeeki.com 5
http://feedly.com 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

【社内勉強会】Docker入門 Presentation Transcript

  • 1. + Docker 入門 Kazuki murahama
  • 2. + Dockerとは
  • 3. + Dockerとは  Dockerはソフトウェアコンテナ内のアプリケーションのデプ ロイメントを自動化するオープンソースソフトウェアである。  Version 0.9より前は、LXCと呼ばれるLinuxコンテナ技術を利 用していたが、現在ではlibcontainerという独自のライブラリで コンテナ仮想技術を提供している。  Dockerfileと呼ばれる設定ファイルからコンテナイメージファ イルを作成可能という特性を持つ。
  • 4. + コンテナとは  軽量な仮想化  各種コンテナ技術  LXC  OpenVZ  Virtuozzo  libvirt  Docker
  • 5. + なぜDockerか  こういうことありませんか  サーバー環境変数が違う  PHP, MySQL, Apacheのバージョンが違う
  • 6. + なぜDockerか  Immutable Inflastractureの実現  Immutable とは“変更不可”(mutableの否定)  コンテナをまるごと商用に持っていくことができるので、一度動け ば、絶対に動く。  Chefなどの構成管理ツールでも問題解決できるのでは?  直接商用のサーバーの設定を書き換える必要がある。きちんと構 成管理できていれば問題ないが、動かなくなる可能性も少なから ずある。  ハイパーバイザ型の仮想イメージでは?  スナップショットやイメージのコミットはできるが、重い。
  • 7. + Dockerのメリット  軽量  コンテナを起動するのに必要なCPUとメモリのオーバーヘッドが少 ない  ゲストOSがなく、kernelを共有  container新規作成も速い。(Imageとの差分で管理されるから。  ハイパーバイザな仮想マシンのようなOSの起動が不要だから。  バックアップが容易  軽量であるため、一瞬で終わる
  • 8. + Dockerのメリット  リソースの制限ができる  Cgroups プロセスグループのリソース(CPU、メモリ、ディスクI/Oなど)の利 用を制限・隔離するLinuxカーネルの機能を用い、リソース管理が 行える  アプリケーションの疎結合  WebとDBを別のcontainerに分けて運用できる  アンインストールの手軽さ  不要なコンテナを停止するのはlinuxプロセスをkill(stop)するのと同 じ感覚  removeも手軽
  • 9. + ホストOS型,ハイパーバイザ型仮想化と の比較図示 Hardware HardwareHardware OS 仮想化基板 OSOS process process process Hypervisor OSOS process process OS process OS process container process container process container Docker Engine ホストOS型 (スーパーバイザ) ハイパーバイザ型 コンテナ型
  • 10. + Dockerの使い方
  • 11. + Docker対応ディストリビューション  Mac OS X  Ubuntu  Red Hat Enterprise Linux  CentOS  Debian  Gentoo  Google Cloud Platform  Rackspace Cloud
  • 12. + Docker対応ディストリビューション  Amazon EC2  IBM Softlayer  Arch Linux  FrugalWare  Fedora  openSUSE  CRUX Linux  Microsoft Windows  Binaries
  • 13. + Dockerのインストール  Ubuntuでのインストール例。  $ sudo apt-get update # パッケージのリストを取得  $ sudo apt-get install docker.io # dockerインストール  $ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker # リンクを張る (ubuntuは都合上 "docker.io"となっている)
  • 14. + Dockerの作業の流れ Docker hub Hardware OS process container Docker Image process container Docker Engine Hardware OS process container process container Docker Image Docker Engine
  • 15. + Demo  Dockerコンテナイメージを検索する  Dockerコンテナイメージを取得する  Dockerコンテナを実行  Dockerコンテナを停止  Dockerコンテナを実行、ターミナルを接続する  DockerコンテナをDockerコンテナイメージへ  Webサーバーを立ち上げる
  • 16. + Dockerを扱う上での問題点  データの持ち方  Databaseやコンテンツファイルの永続化がキー。  ログの管理  デプロイ方法の模索  商用で使うとなると、手順をしっかり考えないと事故りそう  コンテナやイメージの管理  ほいほいコンテナが作れてしまう分、しっかりタグ付けとかしたい。  デザインパターンが必要ですね。
  • 17. + その他
  • 18. + Docker 1.0公開  Docker Engine  LXCをwrapしていたが、独自でコンテナライブラリ作成。  「エンタープライズでの活用に耐え得るものになった」  コミュニティサポートだけでなく、商用サポートも  Docker hubの登場(imageを手軽に共有)
  • 19. + Chef,puppet,Ansibleなどの構成管理ツー ルとの連携  Dockerfileだけではテストなど辛い部分や、既存のRecipeを使 いたい場合もあるので、構成管理ツールとの連携もあり。  imageの作成は構成管理ツールで作成すると差分が測りやすい のでより良い。  ただし、サーバーにInstallの要らないAnsibleが適しているかも。
  • 20. + まとめ  Immutable Infrastractureの時代に突入している(今さらながら 再認識  一つの物理サーバーでできることが増えました  たとえばWebサーバーたくさん立てれる  DevOpsの一つの大きな武器  手元でコンテナが動いた→じゃあリリース問題なし!  アプリケーションエンジニアはコンテナを作り、 インフラエンジニアはコンテナが載る母艦を守ればいいという役割 分担も可能か。