Your SlideShare is downloading. ×
  • Like
Docker_jtf2014
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Docker_jtf2014

  • 1,245 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,245
On SlideShare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
25
Comments
0
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Docker ∼JTF2014∼ @koudaiii 2014.06.22
  • 2. About me
  • 3. Sakabe kodai • @koudaiii • github.com/koudaiii • qiita.com/koudaiii • koudaiii.hatenablog.com • Community • TISMatsuri • Jaws-ug 千葉 • Devlove甲子園
  • 4. an open source project to pack, ship and run any application as a lightweight container www.docker.io
  • 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. 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. 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. Docker主な機能 ・コンピューターリソースの隔離および制限 ・他のHost、他のContainerとのNetworkの構成 ・ファイル/ディレクトリの世代と差分の管理 ・再現可能な手順 ! Docker入門:第2章「Dockerの特徴」より
  • 9. for realizing container • User Namespace 名前空間 • プロセスをグループ化して隔離 • 独立したuid/gid,Networkを作る • cgroup リソース制限 • CPU,Memory,Disk,帯域を独立して使用 • AUFS イメージを差分管理 • UnionFSの差分管理より、レイヤの積み重ねでイメージとして構築 • 構築済みのレイヤはキャッシュとして利用されるので、何度でも高速にオペレーショ ン可能
  • 10. Benefits of Container • 起動しているOSは一つ • 仮想マシンを起動しているわけではなく、HostOSから 見るとプロセスを立ち上げているだけなので起動が早い • ハードウェアの仮想化が不要 • 各仮想マシンのようにSystemを動かす必要が無いた め、Containerの中で極論httpdのみ動かしているといっ たことができる
  • 11. Disadvantages of Container • kernelの操作を扱うことが出来ない • 異なるOSを動かすことが出来ない • kernel 3.8以上 • ユーザ名前空間UID,GIDの実装されたのが3.8のため • http://bit.ly/1nUHMeS
  • 12. 再現可能な手順 • Dockerfileを上から順番に実行 • FROMでOSを指定(リポジトリ名:タグ名 ubuntu:12.04) • コマンドにRUNをつけることで簡単に実行 • ADDでContainerにファイルの配置 • EXPOSEで開放するPort指定 • CMDでdocker runする際に実行して欲しいものを記述可能(プロセス 起動をsupervisorを使う)
  • 13. 簡単なUse Cases 開発環境の配布 CI(Jenkins+Docker)
  • 14. 開発環境の配布 • チームにJoinした人にすぐに提供できる • 「俺の環境では、再現しない」を撲滅←
  • 15. CI(Jenkins+Docker) • Infrastructure as codeで秘伝のAMI、スナップショット、サー バーをなくす。 • サーバーのバージョン管理 • DockerとJenkinsとServerspecでミドルウェアのバージョンアッ プのテストを回すことでバージョンの追従 • Chef/Puppet/AnsibleよりはShellライクで手順書と余り変わらな いので入りやすい • 例: RUN apt-get install hoge
  • 16. Infrastructure as code • Orchestration • アプリケーションのデプロイ 例:Capistrano,buildpack • Configuration • ミドルウェアレベルの設定 例:Chef, Puppet • Bootstrapping • OS のインストールにあたる領域 例:Docker, Vagrant, Packer
  • 17. Infrastructure as code commitにより、設定情報だけではなく、なんのためにcommitしたかを追える githubでのDockerfile編集時のcommitに対するコメントでハマった部分などの記載 タグにより、アークテクチャーのバージョン管理
  • 18. Docker Hub Build Detail Status,Dockerfile,Buildのlogが見れる ※GitHubにWebhookを設定すれば、先ほどのpushを元に自動ビルド
  • 19. Docker Hub Information Gethub上に上げたREADMEが表示 Build成功後はBuild BundleでS3に保管される
  • 20. (こんな事も試して見ました) • 自分の開発担当機能について、確認したいときに Herokuのような環境 • git push docker-app master でDocker起動 • 自分自身のrepositoryをもつ • そもそもVOLUMEオプションで自身の開発ディレ クトリをマウントしてしまえば良い
  • 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. 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. 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. Reference • Dockerを支える技術 • http://www.slideshare.net/enakai/ docker-34668707 • Dockerクイックツアー • http://www.slideshare.net/enakai/ docker-34526343
  • 25. 宣伝
  • 26. JAWS-UG 千葉支部 Vol.4 AWS運用縛り
  • 27. 概要 • 日時 • 2014-07-26(土)13:00 - 17:00 • 場所 • 松戸市民会館 101会議室 • 常磐線/新京成電鉄「松戸駅」東口より徒歩約7 分
  • 28. AWS運用縛り • クラウド業界でご活躍されている経験豊富な方々 から、クラウド時代のシステム運用の在り方を ご紹介 • ADSJ プリンシパルソリューションアーキテク トの荒木様より、AWS Summit Tokyo 2014 運 用パネル(TE-05)の振り返りを行っていただく 予定
  • 29. セッション • 「クラメソ保守運用担当からみたAWS使っててよかったこと」 • クラスメソッド株式会社 植木 和樹さん • 「ドキュメントを書こう! 運用自動化時代のドキュメンテーション」 • 運用設計ラボ合同会社 波田野 裕一さん • 「AWSを含めたハイブリッド環境の監視の実現 ∼Zabbixのクラウド対応モ ジュールHyClops∼」 • TIS 株式会社 池田 大輔さん • 調整中
  • 30. LT • 「LEGOマインドストームでシステム監視」 • 株式会社Syun 高松 基広さん • 「ご注文は自動化ですか?(仮)」 • クリエーションライン株式会社 前佛 さん • 「AWSサミット東京1日目のパネル<<クラウド時代の運用>>振り返り」 • アマゾン データ サービス ジャパン株式会社 荒木 さん • 調整中
  • 31. http://jawsug-chiba.doorkeeper.jp/events/12561 本編 http://jawsug-chiba.doorkeeper.jp/events/12563 懇親会