Docker_jtf2014

1,830 views

Published on

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,830
On SlideShare
0
From Embeds
0
Number of Embeds
236
Actions
Shares
0
Downloads
27
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Docker_jtf2014

  1. 1. Docker ∼JTF2014∼ @koudaiii 2014.06.22
  2. 2. About me
  3. 3. Sakabe kodai • @koudaiii • github.com/koudaiii • qiita.com/koudaiii • koudaiii.hatenablog.com • Community • TISMatsuri • Jaws-ug 千葉 • Devlove甲子園
  4. 4. an open source project to pack, ship and run any application as a lightweight container www.docker.io
  5. 5. Container Docker is a shipping container system for code Static website! Web frontend !User DB! Queue! Analytics DB! Development VM! QA server! Public Cloud! Contributor’s laptop! Mul$plicity*of*Stacks* Mul$plicity*of* hardware* environments* Production Cluster! Customer Data Center! Do*services*and*apps* interact* appropriately?* Can*I*migrate* smoothly*and*quickly* …that can be manipulated using standard operations and run consistently on virtually any hardware platform ! An engine that enables any payload to be encapsulated as a lightweight, portable, self-sufficient container…!
  6. 6. VM・・・仮想的なハードウェアの環境 コンテナ・・・OSレベルの仮想化 第2回 コンテナの仕組みとLinuxカーネルのコンテナ機能[1]名前空間とは? http://gihyo.jp/admin/serial/01/linux_containers/0002 ハイパーバイザー型とコンテナー型の仮想化の違い{http://bit.ly/1lWFveH} OS+ハイパーバイザ VM OS プ ロ セ ス プ ロ セ ス VM OS プ ロ セ ス プ ロ セ ス VM OS プ ロ セ ス プ ロ セ ス 物理マシン OS 隔離空間 プ ロ セ ス プ ロ セ ス 隔離空間 プ ロ セ ス プ ロ セ ス プ ロ セ ス プ ロ セ ス 物理マシン
  7. 7. Container vs. VMs Linuxのkernel 3.8よりもつ機能 OSレベルの仮想化実現 App# A# # # # # # # Hypervisor#(Type#2)# Host#OS# Server# # # # # Guest# OS# # # # # # # # # Bins/# Libs# # # # # App# A’# # # # # # # # # # # Guest# OS# # # # # # # # # Bins/# Libs# # # # # App# B# # # # # # # # # # # Guest# OS# # # # # # # # # Bins/# Libs# # # # # App#A’# Docker## Host#OS# Server# # # # # Bins/Libs# # # # # App#A# # # # # Bins/Libs# # # # # App#B# App#B’# App#B’# App#B’# VM# Container# Containers#are#isolated,# but#share#OS#and,#where# appropriate,#bins/libraries## # # # Guest# OS# # # # # # # # # Guest# OS# # # # # …result#is#significantly#faster#deployment,## much#less#overhead,#easier#migraLon,# faster#restart#
  8. 8. Docker主な機能 ・コンピューターリソースの隔離および制限 ・他のHost、他のContainerとのNetworkの構成 ・ファイル/ディレクトリの世代と差分の管理 ・再現可能な手順 ! Docker入門:第2章「Dockerの特徴」より
  9. 9. for realizing container • User Namespace 名前空間 • プロセスをグループ化して隔離 • 独立したuid/gid,Networkを作る • cgroup リソース制限 • CPU,Memory,Disk,帯域を独立して使用 • AUFS イメージを差分管理 • UnionFSの差分管理より、レイヤの積み重ねでイメージとして構築 • 構築済みのレイヤはキャッシュとして利用されるので、何度でも高速にオペレーショ ン可能
  10. 10. Benefits of Container • 起動しているOSは一つ • 仮想マシンを起動しているわけではなく、HostOSから 見るとプロセスを立ち上げているだけなので起動が早い • ハードウェアの仮想化が不要 • 各仮想マシンのようにSystemを動かす必要が無いた め、Containerの中で極論httpdのみ動かしているといっ たことができる
  11. 11. Disadvantages of Container • kernelの操作を扱うことが出来ない • 異なるOSを動かすことが出来ない • kernel 3.8以上 • ユーザ名前空間UID,GIDの実装されたのが3.8のため • http://bit.ly/1nUHMeS
  12. 12. 再現可能な手順 • Dockerfileを上から順番に実行 • FROMでOSを指定(リポジトリ名:タグ名 ubuntu:12.04) • コマンドにRUNをつけることで簡単に実行 • ADDでContainerにファイルの配置 • EXPOSEで開放するPort指定 • CMDでdocker runする際に実行して欲しいものを記述可能(プロセス 起動をsupervisorを使う)
  13. 13. 簡単なUse Cases 開発環境の配布 CI(Jenkins+Docker)
  14. 14. 開発環境の配布 • チームにJoinした人にすぐに提供できる • 「俺の環境では、再現しない」を撲滅←
  15. 15. CI(Jenkins+Docker) • Infrastructure as codeで秘伝のAMI、スナップショット、サー バーをなくす。 • サーバーのバージョン管理 • DockerとJenkinsとServerspecでミドルウェアのバージョンアッ プのテストを回すことでバージョンの追従 • Chef/Puppet/AnsibleよりはShellライクで手順書と余り変わらな いので入りやすい • 例: RUN apt-get install hoge
  16. 16. Infrastructure as code • Orchestration • アプリケーションのデプロイ 例:Capistrano,buildpack • Configuration • ミドルウェアレベルの設定 例:Chef, Puppet • Bootstrapping • OS のインストールにあたる領域 例:Docker, Vagrant, Packer
  17. 17. Infrastructure as code commitにより、設定情報だけではなく、なんのためにcommitしたかを追える githubでのDockerfile編集時のcommitに対するコメントでハマった部分などの記載 タグにより、アークテクチャーのバージョン管理
  18. 18. Docker Hub Build Detail Status,Dockerfile,Buildのlogが見れる ※GitHubにWebhookを設定すれば、先ほどのpushを元に自動ビルド
  19. 19. Docker Hub Information Gethub上に上げたREADMEが表示 Build成功後はBuild BundleでS3に保管される
  20. 20. (こんな事も試して見ました) • 自分の開発担当機能について、確認したいときに Herokuのような環境 • git push docker-app master でDocker起動 • 自分自身のrepositoryをもつ • そもそもVOLUMEオプションで自身の開発ディレ クトリをマウントしてしまえば良い
  21. 21. Shared Folder Mac and Container(0.10) ##https://github.com/boot2docker/boot2docker/pull/284 ##Download https://dl.dropboxusercontent.com/u/12014139/boot2docker.iso ! $ boot2docker stop $ vim $HOME/.boot2docker/profile BOOT2DOCKER_ISO=~/path/to/boot2docker.iso $ VBoxManage sharedfolder add boot2docker-vm -name home -hostpath $HOME $ boot2docker up $ boot2docker ssh "sudo modprobe vboxsf && mkdir -p $HOME && sudo mount -t vboxsf home $HOME" $ docker run -i -t -v ~/Documents/hoge:~/hoge hoge/moge /bin/bash
  22. 22. Reference • Docker introduction • http://slidesha.re/1hNzIX6 • LinuxContainer introduction • http://bit.ly/1ivylm5 • Linux 3.8 の User Namespace(1)-(4) • http://bit.ly/1hNAYK3 • Red hat Linux リソース管理ガイド • http://red.ht/1folC4g • docker-pass-example • https://github.com/naoya/docker-paas-example
  23. 23. Reference • Dockerと継続的インテグレーション • https://github.com/ydnjp/docker-continuous-integration-workflow • LXCで学ぶコンテナ入門 −軽量仮想化環境を実現する技術 • http://gihyo.jp/admin/serial/01/linux_containers • いまさら聞けないDocker入門 • http://bit.ly/1ivylm5 • [翻訳] Dockerについてよくある勘違い • http://techracho.bpsinc.jp/hachi8833/2014_06_16/17982 • Docker入門 • http://amzn.to/V0Ds4l
  24. 24. Reference • Dockerを支える技術 • http://www.slideshare.net/enakai/ docker-34668707 • Dockerクイックツアー • http://www.slideshare.net/enakai/ docker-34526343
  25. 25. 宣伝
  26. 26. JAWS-UG 千葉支部 Vol.4 AWS運用縛り
  27. 27. 概要 • 日時 • 2014-07-26(土)13:00 - 17:00 • 場所 • 松戸市民会館 101会議室 • 常磐線/新京成電鉄「松戸駅」東口より徒歩約7 分
  28. 28. AWS運用縛り • クラウド業界でご活躍されている経験豊富な方々 から、クラウド時代のシステム運用の在り方を ご紹介 • ADSJ プリンシパルソリューションアーキテク トの荒木様より、AWS Summit Tokyo 2014 運 用パネル(TE-05)の振り返りを行っていただく 予定
  29. 29. セッション • 「クラメソ保守運用担当からみたAWS使っててよかったこと」 • クラスメソッド株式会社 植木 和樹さん • 「ドキュメントを書こう! 運用自動化時代のドキュメンテーション」 • 運用設計ラボ合同会社 波田野 裕一さん • 「AWSを含めたハイブリッド環境の監視の実現 ∼Zabbixのクラウド対応モ ジュールHyClops∼」 • TIS 株式会社 池田 大輔さん • 調整中
  30. 30. LT • 「LEGOマインドストームでシステム監視」 • 株式会社Syun 高松 基広さん • 「ご注文は自動化ですか?(仮)」 • クリエーションライン株式会社 前佛 さん • 「AWSサミット東京1日目のパネル<<クラウド時代の運用>>振り返り」 • アマゾン データ サービス ジャパン株式会社 荒木 さん • 調整中
  31. 31. http://jawsug-chiba.doorkeeper.jp/events/12561 本編 http://jawsug-chiba.doorkeeper.jp/events/12563 懇親会

×