SlideShare a Scribd company logo
DockerCon17
May 31, 2017 (Wed) 配布版
誰?
さくらインターネット株式会社
• クラウドチーム
• VPS チーム
• エバンジェリストチーム
• 石狩市への小学校プログラミング教育
支援プロジェクト
•
BLUE GREEN DEPLOYMENT(稲作農業)
3
Authorized Docker Trainer (2015.6~)
各種執筆
ドキュメント翻訳
ゼ ン ブ ツ マ サ ヒ ト
http://docs.docker.jp/
4
DockerCon17
今日この場で共有したいこと
“Docker”の現状
バージョン表記とエディション
“Moby”と各プロジェクトの関係
DockerCon17 あれこれ
7
技術と仕様
Dockerの現状
2017年5月現在
8
技術と仕様
Technology Specification
コンテナ Docker
9
技術と仕様
Technology Specification
コンテナ Docker
10
Linux kernelのコンテナ化技術
• 名前空間とコントロール・グループの制御により、
•
プロセス環境を分離し、リソースも制限できる
• この技術をDocker Engine (dockerd) で制御
namespace control group (cgroup)
isolate
11
コンテナAの
ファイルシステム
… …
コンテナBの
ファイルシステム
/etc
(/data/ubuntu/etc)
/bin
(/data/ubuntu/bin)
/etc
(/data/centos/etc)
/bin
(/data/centos/bin)
/ /
httpd
PID 1
プロセスA プロセスB
ruby
PID 1
chris.rb
PID 2
コンテナA コンテナB
名前空間の isolate
・プロセス
・ファイルシステム
・ネットワーク
・ホスト名
・UID・GID
リソース制限
・CPU
・メモリ
・I/O
・ディスク・クォータ
コンテナの実行
12
技術と仕様
Technology Specification
コンテナ Docker
13
でも、コンテナって
前からあったよね?
14
15
16
17
18
構築・移動・実行
Build Ship Run
19
Dockerと愉快な仲間達
Build Run開 発 ・ 構 築 移 動 実 行
Ship
“Build, Ship, Run, Any App Anywhere”
Docker Engine for Linux / Commercial Support
Docker for Mac, Windows, Windows Server 2016
Docker Trusted Registry
Docker Hub
Universal Control Plane
Toolbox
Kitematic
Dev
(開発)
Ops
(運用)
20
Docker Hub
Dockerイメージの保管と共有をするためのリポジトリ(倉庫)
21
Docker Engine とデーモンの変遷
Docker Engine
Linux Kernel
・namespaces
・cgroups
LXC libcontainer runC
containerd
v0.9~
v1.11~
Version 7 Unix
chroot
jail
dockerd
v1.12~
デーモン
ライブラリ
ランタイム
docker daemon
Docker: the container engine
v1.11~
22
https://www.opencontainers.org https://www.cncf.io
コンテナ化 動的なオーケストレーション
マイクロサービス指向のアプリケーション
オープンソース・ソフトウェアの集積(stack)
オープンな業界標準のコンテナ規格と
ランタイムを策定するのが目的
“An open governance structure for the express
purpose of creating open industry standards
around container formats and runtime”
ソフトウェアのビジネスを行う企業ではなく、
ソフトウェア企業が本当に必要なもの
“Companies are realizing that they need to be a
software company, even if they are not in the
software business”
どちらも2015年6月に設立
23
https://www.opencontainers.org https://www.cncf.io
• コンテナの実行と監視(管理)
• イメージ配布
• ネットワークインタフェースと管理
• ローカル・ストレージ
• ネイティブに組み込まれたAPI
• OCI に準拠したコンテナを作成・実行
• “runc” コマンドライン・ツール
24
25
技術と仕様
Technology Specification
コンテナ Docker
26
CEとEE
表記の変更
Dockerバージョン
v1.13
27
v1.12v1.11v1.10
Docker Engine (Open Source)
2017-01-182016-07-282016-04-132016-02-05
Docker Engine (CS; Commercial Support)
v1.13
28
v1.12v1.11v1.10
Docker Engine (Open Source)
2017-01-182016-07-282016-04-132016-02-05
Docker Engine (CS; Commercial Support)
v17.03
Community Edition
CE
v17.03
Enterprise Edition
EE
29
Community Edition
DockerCE
Edge
Stable
v17.03 v17.04 v17.05 v17.06 v17.07 v17.08 v17.09 v17.10
30
Community Edition
DockerCE
Enterprise Edition
DockerEE
4ヶ月ごとに定期リリース
各バージョンを1年サポート
Edge
Stable
v17.03 v17.04 v17.05 v17.06 v17.07 v17.08 v17.09 v17.10
Announcing Docker Enterprise Edition - Docker Blog
https://blog.docker.com/2017/03/docker-enterprise-edition/
31
Mobyとは?
Dockerの関係性
Moby Project
32
33
Moby
もびぃ
こいつ
わたしです
34
35
ソフトウェアのコンテナ化を主流にする
メインストリーム
36
https://mobyproject.org/
“An open framework to assemble specialized container systems
without reinventing the wheel.”
車輪の再発明することなく、コンテナに特化したシステムを組み立てる
オープンなフレームワーク
37
Introducing Moby Project: a new open-source project to advance the software containerization movement - Docker Blog
https://blog.docker.com/2017/04/introducing-the-moby-project/
A new upstream project to break up Docker into independent components by shykes · Pull Request #32691 · moby/moby
https://github.com/moby/moby/pull/32691
Docker と周辺ツールやプロジェクトとの関係性まとめ
references
2013
Docker
LXC
+
2014
libcontainer
ver0.9
デーモン
Linux向けコンテナ用
ライブラリ(当時開発中)
独自にライブラリを実装
2015
Docker Engine
デーモンの呼称を変更
補助ツール群の登場
Docker Swarm
Docker Compose
Docker Machine
2016 2017
runC
v1.11
OCI基準のランタイムの1つ
“docker”バイナリから
dockerd デーモンに代わり
Linux capabilityの管理
Engine (dockerd)
containerD
OCI準拠のランタイムを
動かすスーパーバイザ
v1.11
Docker独自規格
業界規格・共通技術
CNCF (Cloud Native
Computing Foundation)
の規格の1つに採用
v1.12
infrakit
v1.12
SwarmKit
platform agnostic
インフラの差違を埋めるためのツール
カーネルとユーザスペースを提供
イミュータブルなインフラのため
派生
swarm
モード
派生
hyperkit
vpnkit
datakit
コンテナシステムの組立に
特化したフレームワークを
開発するプロジェクト
https://github.com/mobyhttps://github.com/docker
38
https://mobyproject.org/
• 既に80以上のコンポーネント用ライブラリ
• 自分でコンテナ・エンジンを組み立てられる
• 公開 Docker 開発プロジェクトが moby
• Docker 開発プロジェクト(GitHub)が moby に移行済み
• 個々のツール(***kit)も moby リポジトリに移行または独立予定
infrakit linuxKit runC containerD Notary swarmKit
39
Community Edition
DockerCE
Enterprise Edition
DockerEE
自由に使えるDocker
(Engine)
商用サポート版
一
般
利
用
開
発
プ
ロ
ジ
ェ
ク
ト
“moby” CLI ツール
40
41
https://www.slideshare.net/Docker/dockercon-2017-general-session-day-1-solomon-hykes-75362520/62
42
https://mobyproject.org/
• mobyの想定利用者≠Dockerユーザ
• 自分でDockerの構築・カスタマイズをしたいHacker
• コンテナシステムを構築するエンジニアやインテグレータ
• 自分たちの既存環境にコンテナを導入したいインフラ提供者
• 最新のコンテナ技術を使いたい、オープンソース技術を評価したい
対象外:
• コンテナでアプリケーションを実行したい
 Docker CE
• エンタープライズ IT や開発システム
 Docker EE
• コンテナ技術にに興味があり、手軽に学びたい
 -http://www.docker.com へ
43
“Dockerのことが嫌いでも
Mobyは嫌いにならないでください”
44
詳しくは…
【参考訳】Mobyプロジェクトのご紹介(dockercon17での発表) - Qiita
http://qiita.com/zembutsu/items/c8f33b5fbc3211f5be52
【参考訳】LinuxKitの公開:安全、無駄のない、ポータブルなLinuxサブシステム - Qiita
http://qiita.com/zembutsu/items/c17cdf1678f0cba72e06
“https://qiita.com/zembutsu”
45
リソース
会場の様子など
Dockercon17
46
Docker, Inc. | SlideShare
https://www.slideshare.net/docker
DockerCon 2017 - General Session Day 1 - Solomon Hykes
https://www.slideshare.net/Docker/dockercon-2017-general-session-day-1-solomon-hykes-75362520
47
Draft NIST Special Publication 800-190
Application Container
Security Guide
http://csrc.nist.gov/publications/drafts/
800-190/sp800-190-draft.pdf
48
49
APRIL 17-20, 2017
AUSTIN, TX
5,500 Attendees
50
51
突然の
危険シェル芸
52
忙しい人の5分で分かるDocker 2017年春Ver
“Docker”の現状
バージョン表記とエディション
“Moby”と各プロジェクトの関係
DockerCon17 あれこれ
私からは以上です
ありがとうございました
何か気になる所がありますか?
ご参考:Docker 日本語ドキュメント
http://docs.docker.jp/
http://slideshare.net/zembutsu
twitter: @zembutsu

More Related Content

忙しい人の5分で分かるDocker 2017年春Ver