Copyright©2017 NTT Corp. All Rights Reserved.
日本電信電話(株)
ソフトウェアイノベーションセンタ
須田 瑛大
<suda.akihiro@lab.ntt.co.jp>
Docker コミュニティ近況
NTT Tech Conference #1
2017年1月27日(金)
2Copyright©2017 NTT Corp. All Rights Reserved.
• Docker Engine Core Maintainer (いわゆるコミッタ)
• Dockerに対するパッチのレビューやマージをしている
(Docker社員以外では世界で8名)
• ソフトウェア試験技術の研究開発
• FOSDEMやApacheConなどのオープンソース系会議で発表
自己紹介
• 日本電信電話(株) ソフトウェアイノベーションセンタ
• NTT研究所のオープンソース活動部門
• 新卒入社3年目
• 須田 瑛大 (すだ あきひろ)
• github: @AkihiroSuda
• Twitter: @_AkihiroSuda_
所属
業務
3Copyright©2017 NTT Corp. All Rights Reserved.
お話しする内容
Docker 1.13
containerd
InfraKit
Infinit
バグ報告の仕方
パッチの投げ方
Docker関連ソフトウェアの動向
Dockerコミュニティの案内
ガバナンス
質問の仕方
Dockerとは何か
4Copyright©2017 NTT Corp. All Rights Reserved.
• いわゆるコンテナ型仮想化基盤
• 仮想マシンより軽い
• イメージの作成・共有が簡単
• 昔のjailなどとの大きな違い
• 分散実行にも対応
• 標準: Swarm-mode / 3rd party: Kubernetes など
Dockerとは
FROM ubuntu:16.10
RUN apt-get install hogehoge
COPY hogehoge.conf /etc
Dockerfileをコミットする
イメージがビルドされる
クラスタにデプロイできる
例
5Copyright©2017 NTT Corp. All Rights Reserved.
• Docker本体が,Docker Compose機能を備えるようになった
• Swarm-modeを用いて複数ノードで分散実行できる
• secret機能がついた
• コンテナ内からAWSやgithubへアクセスするためのキーなどを安全に
格納できる
• 機能面では,Kubernetesに追いつきつつあるのではないか?
Docker 1.13 リリース (2017/1/19)
services:
web: #入力受付画面
replicas: 2
compute: #処理
replicas: 3
db: #DB
replicas: 1 #ステートフルなので特定1ノードに張り付け
placement:
constraints: node.hostname == host42
volumes: /var/db-data #host42のHDD上で永続化
$ docker stack deploy ¥
--compose-file=docker-compose.yml ¥
my_stack
webweb
compute compute compute
db
LB
LB
VOL
例
6Copyright©2017 NTT Corp. All Rights Reserved.
• Dockerでステートフルなサービスを動かすときは,
永続データをどこに置くべきかが悩みどころ
• Docker社が分散ストレージInfinitを買収した.近々オ
ープンソース化の見込み.
• ブロック・オブジェクト・ファイル いずれのインターフェースも
サポート
• ビザンチン障害にも対応
• InfinitはもともとはスマホとPC間でのファイル共有サービスとし
て開発された模様.Docker統合へ向けてどう変わっていくのか
興味深い.
• AppStore / Google Playにもアプリがある
• InfinitがDockerに統合されれば,ステートフルなサー
ビスも簡単にデプロイ可能となりそう
Infinit買収 (2016年12月)
7Copyright©2017 NTT Corp. All Rights Reserved.
Infinit買収 (2016年12月)
画像出典: http://blog.infinit.sh/introducing-infinit-file-system/
8Copyright©2017 NTT Corp. All Rights Reserved.
• Dockerを動かすVMをAWS上などに構築するツール
• Docker Machineとの違い:
• 個々のインスタンスではなく,インスタンスのグループを対象として扱える
• Swarm-modeクラスタの構築・運用に便利
• 構成情報をローカルディスク以外に保存できる
• Docker for AWS/Azure/GCPとの違い:
• プラグインとして任意のクラウドサービスに対応可能
• Docker以外のクラスタの構築にも使える (ZooKeeperなど)
• SwarmkitがDocker本体に統合されたように,InfrakitもDocker本体
に統合されそう
Infrakit発表 (2016年10月)
9Copyright©2017 NTT Corp. All Rights Reserved.
• containerdが,Docker社から独立した新組織に移管されることとな
った
• 旧containerd (runcとdockerdを繋ぐだけ)と異なり,イメージ関連機能
を備える
• Docker以外のプロジェクトとも,低レイヤの共通化が容易になった
• 新組織の詳細は数ヶ月以内に明らかになる
• 現時点でのメンテナは Docker 3名,Cloudflare, Huawei, IBM,
Microsoft 各1名
containerdの新組織移管 (2017年早期)
dockerd
containerd
runc
コンテナ機能本体
(namespace, cgroupなど)
Dockerfileパーザ
Swarm-modeなど上位機能
OCIイメージのダウンロード
AUFS, Overlayなどの差分ファイルシステム
Docker社と社外メンテナ
新組織
Open Containers Initiative
10Copyright©2017 NTT Corp. All Rights Reserved.
• Docker社員以外でも開発に参加できる
• GitHub上でのパッチ投稿を受け付けている
• パッチ投稿だけではなく,バグ報告や解析も歓迎される
• 活発に活動しているとメンテナ(所謂コミッタ)に誘われる
• Docker Engine Core Maintainer26名の所属内訳
Dockerコミュニティのガバナンス
所属 人数
Docker 18
IBM 3
Huawei 1
Infosiftr 1
Microsoft 1
NTT 1
Red Hat 1
core maintainer: パッチの採否を決定する
docs maintainer: 同上(ドキュメントに限る)
curator: issue(質問・バグ票)の整理
※SwarmkitやInfrakitなどは別リポジトリなので
別個にメンテナが居る
11Copyright©2017 NTT Corp. All Rights Reserved.
• 質問なら..
• Docker Communityに登録する(https://community.docker.com/)と
SlackやForumsにアクセスできる
• Slackに日本人チャネルもあり (#japanese-users)
• MLやIRCはあまり使われない
• Stackoverflowなどでも
質問できる
• バグ報告なら..
• GitHubのアカウントを作る
• https://github.com/docker/docker にアクセスする
• 重複していないか検索する.自信がないときは,新規報告推奨.
• New issue ボタンを押す
質問・バグ報告の仕方
12Copyright©2017 NTT Corp. All Rights Reserved.
• フォームを埋める
バグ報告の仕方
再現手順
• 短すぎる⇒情報不足で再現できない
• 長すぎる⇒再現しようと思う人が少なくなる
バージョンやディストリビューション
13Copyright©2017 NTT Corp. All Rights Reserved.
• パッチを書く (Go言語, Apache License 2.0)
• GitHubのNew pull requestボタンを押す
• フォームを埋める
• メンテナの反応を待つ.2名以上のLGTMでマージされる.
• 反応がないときはメンテナにpingする
パッチの投げ方
"Looks Good To Me"
動物の写真を添付する
14Copyright©2017 NTT Corp. All Rights Reserved.
•Dockerはますます便利に,
ますますオープンになっていきます
•バグ報告,パッチ投稿お待ちしております
おわりに

Dockerコミュニティ近況

  • 1.
    Copyright©2017 NTT Corp.All Rights Reserved. 日本電信電話(株) ソフトウェアイノベーションセンタ 須田 瑛大 <suda.akihiro@lab.ntt.co.jp> Docker コミュニティ近況 NTT Tech Conference #1 2017年1月27日(金)
  • 2.
    2Copyright©2017 NTT Corp.All Rights Reserved. • Docker Engine Core Maintainer (いわゆるコミッタ) • Dockerに対するパッチのレビューやマージをしている (Docker社員以外では世界で8名) • ソフトウェア試験技術の研究開発 • FOSDEMやApacheConなどのオープンソース系会議で発表 自己紹介 • 日本電信電話(株) ソフトウェアイノベーションセンタ • NTT研究所のオープンソース活動部門 • 新卒入社3年目 • 須田 瑛大 (すだ あきひろ) • github: @AkihiroSuda • Twitter: @_AkihiroSuda_ 所属 業務
  • 3.
    3Copyright©2017 NTT Corp.All Rights Reserved. お話しする内容 Docker 1.13 containerd InfraKit Infinit バグ報告の仕方 パッチの投げ方 Docker関連ソフトウェアの動向 Dockerコミュニティの案内 ガバナンス 質問の仕方 Dockerとは何か
  • 4.
    4Copyright©2017 NTT Corp.All Rights Reserved. • いわゆるコンテナ型仮想化基盤 • 仮想マシンより軽い • イメージの作成・共有が簡単 • 昔のjailなどとの大きな違い • 分散実行にも対応 • 標準: Swarm-mode / 3rd party: Kubernetes など Dockerとは FROM ubuntu:16.10 RUN apt-get install hogehoge COPY hogehoge.conf /etc Dockerfileをコミットする イメージがビルドされる クラスタにデプロイできる 例
  • 5.
    5Copyright©2017 NTT Corp.All Rights Reserved. • Docker本体が,Docker Compose機能を備えるようになった • Swarm-modeを用いて複数ノードで分散実行できる • secret機能がついた • コンテナ内からAWSやgithubへアクセスするためのキーなどを安全に 格納できる • 機能面では,Kubernetesに追いつきつつあるのではないか? Docker 1.13 リリース (2017/1/19) services: web: #入力受付画面 replicas: 2 compute: #処理 replicas: 3 db: #DB replicas: 1 #ステートフルなので特定1ノードに張り付け placement: constraints: node.hostname == host42 volumes: /var/db-data #host42のHDD上で永続化 $ docker stack deploy ¥ --compose-file=docker-compose.yml ¥ my_stack webweb compute compute compute db LB LB VOL 例
  • 6.
    6Copyright©2017 NTT Corp.All Rights Reserved. • Dockerでステートフルなサービスを動かすときは, 永続データをどこに置くべきかが悩みどころ • Docker社が分散ストレージInfinitを買収した.近々オ ープンソース化の見込み. • ブロック・オブジェクト・ファイル いずれのインターフェースも サポート • ビザンチン障害にも対応 • InfinitはもともとはスマホとPC間でのファイル共有サービスとし て開発された模様.Docker統合へ向けてどう変わっていくのか 興味深い. • AppStore / Google Playにもアプリがある • InfinitがDockerに統合されれば,ステートフルなサー ビスも簡単にデプロイ可能となりそう Infinit買収 (2016年12月)
  • 7.
    7Copyright©2017 NTT Corp.All Rights Reserved. Infinit買収 (2016年12月) 画像出典: http://blog.infinit.sh/introducing-infinit-file-system/
  • 8.
    8Copyright©2017 NTT Corp.All Rights Reserved. • Dockerを動かすVMをAWS上などに構築するツール • Docker Machineとの違い: • 個々のインスタンスではなく,インスタンスのグループを対象として扱える • Swarm-modeクラスタの構築・運用に便利 • 構成情報をローカルディスク以外に保存できる • Docker for AWS/Azure/GCPとの違い: • プラグインとして任意のクラウドサービスに対応可能 • Docker以外のクラスタの構築にも使える (ZooKeeperなど) • SwarmkitがDocker本体に統合されたように,InfrakitもDocker本体 に統合されそう Infrakit発表 (2016年10月)
  • 9.
    9Copyright©2017 NTT Corp.All Rights Reserved. • containerdが,Docker社から独立した新組織に移管されることとな った • 旧containerd (runcとdockerdを繋ぐだけ)と異なり,イメージ関連機能 を備える • Docker以外のプロジェクトとも,低レイヤの共通化が容易になった • 新組織の詳細は数ヶ月以内に明らかになる • 現時点でのメンテナは Docker 3名,Cloudflare, Huawei, IBM, Microsoft 各1名 containerdの新組織移管 (2017年早期) dockerd containerd runc コンテナ機能本体 (namespace, cgroupなど) Dockerfileパーザ Swarm-modeなど上位機能 OCIイメージのダウンロード AUFS, Overlayなどの差分ファイルシステム Docker社と社外メンテナ 新組織 Open Containers Initiative
  • 10.
    10Copyright©2017 NTT Corp.All Rights Reserved. • Docker社員以外でも開発に参加できる • GitHub上でのパッチ投稿を受け付けている • パッチ投稿だけではなく,バグ報告や解析も歓迎される • 活発に活動しているとメンテナ(所謂コミッタ)に誘われる • Docker Engine Core Maintainer26名の所属内訳 Dockerコミュニティのガバナンス 所属 人数 Docker 18 IBM 3 Huawei 1 Infosiftr 1 Microsoft 1 NTT 1 Red Hat 1 core maintainer: パッチの採否を決定する docs maintainer: 同上(ドキュメントに限る) curator: issue(質問・バグ票)の整理 ※SwarmkitやInfrakitなどは別リポジトリなので 別個にメンテナが居る
  • 11.
    11Copyright©2017 NTT Corp.All Rights Reserved. • 質問なら.. • Docker Communityに登録する(https://community.docker.com/)と SlackやForumsにアクセスできる • Slackに日本人チャネルもあり (#japanese-users) • MLやIRCはあまり使われない • Stackoverflowなどでも 質問できる • バグ報告なら.. • GitHubのアカウントを作る • https://github.com/docker/docker にアクセスする • 重複していないか検索する.自信がないときは,新規報告推奨. • New issue ボタンを押す 質問・バグ報告の仕方
  • 12.
    12Copyright©2017 NTT Corp.All Rights Reserved. • フォームを埋める バグ報告の仕方 再現手順 • 短すぎる⇒情報不足で再現できない • 長すぎる⇒再現しようと思う人が少なくなる バージョンやディストリビューション
  • 13.
    13Copyright©2017 NTT Corp.All Rights Reserved. • パッチを書く (Go言語, Apache License 2.0) • GitHubのNew pull requestボタンを押す • フォームを埋める • メンテナの反応を待つ.2名以上のLGTMでマージされる. • 反応がないときはメンテナにpingする パッチの投げ方 "Looks Good To Me" 動物の写真を添付する
  • 14.
    14Copyright©2017 NTT Corp.All Rights Reserved. •Dockerはますます便利に, ますますオープンになっていきます •バグ報告,パッチ投稿お待ちしております おわりに