Your SlideShare is downloading. ×
0
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Docker基礎+docker0.9, 0.10概要

63,429

Published on

Published in: Internet
0 Comments
103 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
63,429
On Slideshare
0
From Embeds
0
Number of Embeds
37
Actions
Shares
0
Downloads
240
Comments
0
Likes
103
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基礎 0.9/0.10概要 @mainyaa Image by docker blog
  • 2. Who ● @mainyaa ● Kazuyuki Mori ● フロントエンドからバックエンドまでやる系エンジニア ● AngualrJSとDocker大好き ● Topgate, Inc. - http://www.topgate.co.jp/ ● Happy New World - http://d.hatena.ne.jp/mainyaa ● 日経ソフトウエア 2014年06月号 でDockerの記事書いてます ○ WindowsでDockerやりたい人向け(ステマ)
  • 3. Docker? Image by docker blog
  • 4. デプロイの問題 ● デプロイしてみたら動きませんでした>< ● サーバーごとに違う環境変数、pythonのバー ジョン、ライブラリのバージョン ● 手元では上手くいくが、プロダクションでは転ぶ 場合にどうするか ● ロックインを避けつつスケールしたい
  • 5. Dockerとは ● オープンソースの次世代仮想化技術 ● アプリケーションを「コンテナ」にパッ ケージング&デプロイ&実行 ● 1回ビルドすればどこでも動く ● Dockerfileさえあればいつでも再現で きる ● Go言語で書かれている
  • 6. 何を解決するの? ● デプロイ作業をもっと手軽に! ○ Dockerfileを元に必要なライブラリや環境変数もまとめ てパッケージング ○ パッケージングしたコンテナ仮想環境を実行&テスト& デプロイ Dockerfileでインフラをコードとして扱える
  • 7. 何を解決するの? ● コンテナ仮想化 ○ ビルドもデプロイも高速 ○ オーバーヘッドが少ない ○ プラットフォームやハードウェアからの隔離環境 ○ ラップトップで動いているものをそのままサーバーに持っ ていける 問題が起きても、本番と同一のコンテナを手元で動かせ、shellで 入れるため再現性が高い
  • 8. 何を解決するの? ● ロールバック ○ すべてのコンテナには固有IDがある ○ Dockerfileの行ごとにコンテナIDが作られる ○ 全てのコンテナは親からの差分保存 ○ gitのように失敗した時点に戻ってやりなおせる ○ アプリケーション、DB、ネイティブツールをコンテナ単位 に疎結合に 依存関係ごとバージョン切り替え&ロールバック
  • 9. 何を解決するの? ● VMと何が違うのか ○ Dockerfileでインフラをコードにできる ○ ゲストOSがなく、カーネルを共有しているためオーバー ヘッドが少ない ○ 過去の成功分は再実行しないため、テストやCIも高速 ○ Dockerコンテナ != Linuxコンテナ
  • 10. VM vs コンテナ Image by docker document
  • 11. コンテナ? Image by nromagna
  • 12. ハイレベルから見たコンテナ ● 軽量VM ○ プロセス隔離空間 ○ ネットワーク隔離空間 ○ リソース分離:CPU, メモリのcgroupsによる制御 ○ ルートとして実行できる ○ コピーオンライト ○ ログはすべてstdout/stderr/stdin
  • 13. ローレベルから見たコンテナ ● chrootの強化版 ○ 1コンテナ=1プロセス ○ カーネルをホストと共有している ○ エミュレーションがない ■ VMでもないし準仮想化でもない ○ cgroupsによるリソース制限
  • 14. Devにとってのコンテナ ● コンテナ内だけを気にすればよい ○ アプリケーションのコード ○ アプリケーションの依存ライブラ リ ○ パッケージマネージャー ○ ネイティブアプリ ○ データ Image by hisashi_0802
  • 15. Opsにとってのコンテナ ● コンテナ外だけを気にすればよい ○ ログ ○ リモートアクセス ○ ネットワーク設定 ○ リソースモニタリング Image by グッ写/GATAGS
  • 16. Dockerfile? ● OSのスクラッチイメージからアプリケーションが動作するまでを 書いたコード ● Dockerは、ビルド時にDockerfileの1行ごとにコンテナを作り、 sha1ハッシュのコンテナIDを割り当てる ● コンテナは常に親コンテナからの差分の積み上げ ● Dockerfileの一部を変えても、成功部分は実行しないため、テ ストやCIが非常に高速になる
  • 17. FROM ubuntu:12.04 # Pull base image. RUN apt-get update RUN apt-get apt-get install -y redis-server -- no-install-recommends # Install redis. RUN apt-get clean && rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/* EXPOSE 80 # Expose ports. ENTRYPOINT ["/usr/bin/redis-server"] # Define default command.
  • 18. AUFS? ● コピーオンライト ○ 変更が発生したら初めて保存 ● レイヤー構造のファイルシステム ● 親コンテナからの差分のみを保存していく ● 差分こそDockerのキモ
  • 19. コピーオンライト+AUFS? ● ルートファイルシステムはコピーオンライトで作られる ● もし、1GBのゲストOSを10個動かそうとした場合に使用する ディスクスペースは・・・? ○ VM: 10GB ○ Docker: 1GB ● 高速デプロイ、省メモリ、省ディスクスペース
  • 20. AUFS? Image by docker document
  • 21. AUFS? Image by docker document
  • 22. AUFS? Image by docker document
  • 23. AUFS? Image by docker document
  • 24. デモ ● https://asciinema.org/a/7392
  • 25. 制約 ● Linuxでしか動かない ● Linux カーネル3.8以降 ● 64bitマシンのみ ● 運用面, securityの課題 Image by Docker blog
  • 26. まとめ ● Dockerならディスクスペースを抑えつつ仮想化できるよ ○ 固めて、積み上げて、配信して、切り替える ○ コピーオンライトによる差分 ○ どのコンテナにもshellで入って再現できる ● アプリケーションのお試しや配布が手軽にできる ● プライベートなPaaS ● 自動テストやCI ● 1日に数十回のデプロイ ● 中央集権型から分散型へ ○ CoreOS, etcd, Serf, HAProxy, SkyDNS Image by Docker blog
  • 27. Docker 0.9概要 ● execution driversにより、足回りが 抽象化された ● 多数の隔離ツールがトレードオフとと もに利用できるようになった。ドライ バは絶賛開発中 ● OpenVZ, systemd-nspawn, libvirt- lxc, libvirt-sandbox, qemu/kvm, BSD Jails, Solaris Zones, chroot Image by docker blog
  • 28. Docker 0.9概要 ● バグ修正多数 ● docker build 時に--rmがデフォルトになった ● libcontainerがデフォルトのドライバとなった ○ Pure Go-langで書かれたユーザーランドパッケージに 依存しない隔離ライブラリ ○ = lxcは必須じゃなくなった
  • 29. Docker 0.9概要 Image by Docker blog
  • 30. Docker 0.10概要 ● バグ修正多数 ● 品質向上とシステム管理者向けのアップデート ○ シグナルハンドリング修正 ○ TLS認証サポート ○ sytemdプラグインサポート
  • 31. Docker 1.0の目標 ● プロダクション品質 ● すべての主要なOSでのファーストクラスのサポート ● 小さなコアと安定したプラグインというアーキテクチャ ● 十分なドキュメント ● Dockerとパートナーによって、商用サポートができること ● Dockerの長期的なサポートを提供 Image by Docker blog
  • 32. 補足 ● Facebookグループを作ったので良かったら入ってください ● https://www.facebook. com/groups/237393613114175/ Image by Docker blog

×