Docker Community All-Hands の発表メモ(2020年12月10日開催）


この記事は [Docker Advent Calendar 2020](https://qiita.com/advent-calendar/2020/docker) 記事として、10日目 @hoto17296 さんの [Docker Compose の設定は上書きできる](https://qiita.com/hoto17296/items/a8a85d5244f46c119278) に続き、Docker All-Hands について続き書きました。

YouTube でアーカイブが配信されています https://www.youtube.com/watch?v=-A9jp-R_mBc

主なトピック：

- Docker Desktop 3.0 の話や Apple Silicon (M1) Tech Preview 提供開始
- docker-hub コマンドラインツールは Docker Engine 20.10 から利用可能に
- Docker Compose の Go 版（ `docker compose` コマンド）対応計画
- 経営陣とのぶっちゃけ Q&A

# 概要

「Docker Community All-Hands」というオンラインイベントが12月10日開催され（現地時間）、その内容をメモしたものがこちらです。

冒頭、司会は William Quiviger （Docker, Inc. のコミュニティ・マネージャ）の挨拶、「**THANK YOU!!**」…コミュニティ全体に対して。参加・登録されたみなさん、録画を通して見ている方、Docker を使っているすべてのコミュニティの方へ感謝の言葉から始まりました。

## Executive Updates

###  Scott Johnston (CEO, Docker)

- Docker, Inc. の Scott Johnston（スコット・ジョンソン）CEO （2019年11月就任）
- Docker は皆さんなしには成り立たない。フィードバックをいただいたり、貢献していただいたり、オープンソースの upstream（moby のこと）、ミートアップを開催する仲間や同僚、すべての方に感謝。
- Docker チームの戦略は「Simplify & Accelerate App Delivery」（アプリケーション展開を単純かつ速く）
	- 開発チームが求めているのは、コードからクラウドへの最短経路だが、そこに至る様々で複雑なソフトウェアやサービス。特定の用途向けだったり、不完全、特注（オーダーメイド）されたものに対する、様々な設定、スクリプト、手順など。
	- そのために、Docker が昨年より再び100%集中してるのは、開発者や開発チームが求めているもの。
	- シンプルに Docker を使う体験を通し、開発者・開発チームがローカルな開発環境のソースコードをクラウドに展開できるように。
		-  様々なアーキテクチャに対応した Docker Desktop （Docker Engine、Docker Compose、Kubernetes、Docker build、buildx）
		- Docker Hub （自動ビルド、レジストリ、公式イメージ、連携ツール）
		- そして、様々なコミュニティやパートナーとの協力
	- 開発者は、アプリケーション実体としてのコンテナを構築（build）、共有（share）して、素晴らしいアプリケーションを実行（run）できる環境
- Dockerは成長・反映
	- 1番に求められているプラットフォーム、2番目に愛され、3番目に使われている（Stack Overflow Deverloper Survey 2020より）

### Jean Laurent de Morlhon (VP of Engineering, Docker) 

- 2020年の振り返り
	- Docker Desktop の  WSL 2 対応や
	- Compose 仕様（Specification）
	- Desktop Container & Image UI
	- GitHub Action への Docker 対応
	- Docker Hub プラットフォームの改修（Modernizing）に伴う100のアップデート
	- Compose Plugin for ACI
	- Compose Plugin for AWS
	- Docker Engine 20.10 最新安定版のリリース
- 2020年11月に提供開始したもの
	- "Simplicity, Velocity and Choice for Developers to Build, Share, and Run Apps"
	- Canonical 社と Ubuntu ベースの Docker Hub 公式イメージ改善で協力
	- Docker の AWS ECS インテグレーション、Microsoft Azure CLI インテグレーションの GA リリース
	- Docker Engine 20.10 リリース候補 -> 12月8日正式リリース
	- Docker Desktop 2.5 の GA リリース -> 12月10日 3.0 を正式リリース
- Docker Desktop on Apple Silicon: Developer Preview
	- 新しいハードウェア Apple Silicon への対応作業を進めている
	- 開発者向けプレビューは、今日から提供開始。
	- 来年から提供予定
	- Docker のマルチアーキテクチャ対応を補完

### Donnie Berkholz (VP of Products, Docker)

- コミュニティを通したヒアリングの結果、困っているのは3つの領域に分けられることが分かった
	- Build: 「**Time** is critical, and **quality images** are hard to find & create 」（時間は貴重、かつ、質の高いイメージの発見・作成は大変）
		- 無駄は時間は使えない、設定に関する時間も含めて、動くイメージを作るために
		- ベストプラクティスに従いつつも、高品質、安全（セキュア）なイメージも大変
	- Share: 「Working with my **team** is hard because we can't keep in sync. 」（同期し続けられないので、チームでの作業が大変）
		- チームで標準となるものを共有するのは大変。アプリケーションの実行環境をセットアップしたり、設定を共有したり
	- Run: 「I want my **microservice** to feel the same, from my desktop to CI to the cloud 」デスクトップからクラウドに至るまで、マイクロサービスと同じように感じたい）
		- ローカルだろうがリモートだろうが同じように
	- 来年のロードマップは、これらの問題に取り組んでいく
- Docker Desktop 3.0 を今日リリース
	- 差分更新（delta updates）の提供によって、大規模なダウンロードやセットアップが今後は不要になる。バージョンアップを知らせるポップアップが出なくなり、ワークフローがスピードアップ
	- Stable と Edge が統合され、機能として切り替え可能になる
- Docker Engine 20.10 を昨日リリース
	- ルートレス・モード（rootless mode）が正式対応（実験的段階から成熟）、セキュリティ改善
	- cgroup2 v2 対応により、Fedora など対応プラットフォームが増える
	- buildx も正式対応、キャッシュや一貫性やマルチプラットフォームにより無駄な時間を減らす
	- Logging が利用しやすくなり、 Metrics API も正式提供となり、サードパーティの監視ツールと連携しやすくなる
	- シークレットを安全に扱いやすくなるため、--mount=type  や --secret も実験的段階を卒業

## Product Updates

- Compose の未来について
	- 今年
		- 4月 複数のコンテナを扱いやすくするよう、Compose Spec の発表
		- 5月 Microsoft とパートナーシップを発表、Compose から ACI が扱えるように目指す
		- 6月 AWS とパートナーシップを発表、Compose から ECS が扱えるように目指す
		- 11月 どちらも実験的段階から一般提供（GA）へ
	- 来年のロードマップ
		- Compose の Python から Go 言語への移行
			- preview release の Docker Desktop では Go 版 compose を提供開始（ `docker compose` コマンド）
		- Compose から Kubernetes への対応は、コミュニティとの議論を経たい
		- Google など、その他のクラウド・プロバイダへの対応
- Docker Hub → Desktop 
	- Docker Desktop 過去2年間、大幅な改修を行ってきた
		- テクニカルプレビューでは
			- WSL 2 の GPU サポート
			- Docker Desktop GUI の機能追加
			- CPU やファイルシステム改善を続ける
			- Mac M1 サポート
	- Docker Hub の今後
		- イメージのダッシュボードから、内容に関する履歴をすべて表示（Docker Hub 上のタグ情報を辿ると、イメージをダウンロードしなくても docker history 相当の情報やコマンドを確認できるようになった）
		- Docker Hub で Pull rate 履歴の表示、pull に関するログ、Pro & team 向けに Read only のトークン（に対応したい）
- 実験的機能（Experiments）
	- Hub-tool ( Docker Hub CLI ) を今日提供開始
	- 開発者向けプレビュー（developer preview）への参加によって、実験的機能を早く使える
- コミュニティへからのフィードバックを求めている

## Live Demos

- Apple Silicon (M1チップ搭載）での Docker Desktop for Mac のデモ
	- Mac上でネイティブ arm64 対応 Docker Engine や、arm64 対応イメージの実行
	- amd64 向けイメージを docker buildx build コマンドでビルド
- Hub tool (hub-tool) のデモ
	- hub-tool login から始まり Docker Hub アカウント情報の確認、 `hub-tool account rate-limiting` 

## Community Update

- Community 主導（Initiatives）
  - 世界中でコミュニティイベント（ミートアップやイベント）を再活性化
      - 数週間後に詳細発表予定
  - 開発コミュニティとの連携（Python, Go, Java）
      - プロジェクトの共有、ワークショップ共催、ミートアップ参加

		- コミュニティ貢献
			- ドキュメントとdockersampleリポジトリのタスクフォース
			- コミュニティブログ投稿に関する編集者ガイドライン
			- これらも詳細は近日発表
		- Docker Open Source Program
			- 90以上の名前空間をホワイトリスト化済み
			- こちらは発表済み　https://www.docker.com/community/open-source
		- Docker Community Portal
	- Docker Preview Program
		- 今日から公式ロンチ！
		- 実験的機能や新機能のプレビュービルドを試せる
		- これまでの限定ではなく、誰でも参加可能に
		- https://dockr.ly/dev-preview
	- Special Shout-Outs!
		- Moby メンテナの須田さん、ほか皆さんに感謝！

## 参加者と Docker 経営陣との Q&A セッション

見所は、鋭い質問（sli.doで事前一般公募）に対して、CEO ほか経営陣が苦い顔しながら真摯にこたえていたところです。答えにくそうな質問には CEO 自ら「私が答えましょう」とも。ご興味ありましたら、[動画アーカイブ](https://www.youtube.com/watch?v=-A9jp-R_mBc
) をぜひご覧ください。

### Q1「Apple シリコン対応の版 Docker のリリースはいつになりますか？」

-  "When can we expect a Docker release for Apple silicon?" という質問
- すぐに使うなら Developer Program で、Tech Preview として提供開始している
- 安定して使えるのは、来年提供できるかも

###  Q2 "Docker Swarm を使っていますが使い続けて構いませんか？ オーケストレーションには他のプラットフォームに移ったほうがいいの？"

- ”For teams already using Docker Swarm, would you recommend them to keep using it or to try to migrate to other orchestration platforms in the following year?” と "With Increasing of Kubernetes why still putting effort on the Docker Swarm rather put more effort into Docker before PodMan or other orchestration take over? " という質問
- 改めて、Docker は去年から100%開発者・開発者チームに貢献する方針に変えている
	- コンテナ体験を再定義中、幅広いコミュニティや企業とも連携中
	- 今は Compose を再構築中で、あらゆるオーケストレータ、クラウドプラットフォームで動くように取り組んでいる
	- 現時点クラウド事業者と連携し、 Swarm は維持しつつ、ECS オーケストレータや Azure ACI への対応を行った
- オーケストレータについても再定義中
	- 私たちが信じているのは、Compose を使って、どのようなプラットフォームでも動ける状態にあること
- これらの質問に回答すると
	- まず、Compose はアプリケーションをカバーしている（扱っている）
	- 次に、Swarm 上の発明について圧倒的な敬意を持っており、エンタープライズ分野はミランティス・チームが upstream としてswarm のプロジェクトの推進開発を続けており、Docker は後ろから支援（サポート）する
- まとめると、Compose はオーケストレータ部分も担っており、Docker Swarm  はDocker がプライマリとして自身でサポートし続ける

### Q3 "docker は死んだの？に対しては、何か考えが。たとえば centos8 で動かないし、podman/buildah を readhat は提供しているし、swarm  や compose も先行きが不安"

- ”What are you doing to combat the idea that docker is dead? E.g. docker does not work on centos8, redhat pushing podman/buildah, swarm and compose uncertainty” という質問
- DockerCon のようなイベントや、今回の機会のように、コミュニティを通しやりとりしたりフィードバックを受け付けている
- Build, Share, Running  のためにプロダクトを提供し続ける、Docker Desktop , Hub CLI, Docker Engine 20.10 ...等
- 私たちの業界は広く成長し、領域を拡大している。ただ、その中でも重要なのはコミュニティを通して、私たちのユーザが何を求めているのか注意を払おうとしている
- 質問にコメントするのであれば、以前からの Docker Enterprise で競合する2つの組織に引き抜かれたメンバーが発言することもあるが、彼らには彼らの言い分があり、私たちは今の従業員に集中している
- また、Compose はこの1年で業界におけるサポートが拡大している。 swarm と kubernetes を動かし、Azure や ECS でも動く。私たちは、もっとアプリケーションを Compose によるオーケストレーションで動くようにしたい
- Docker Engine , podman, containerd 、これらは全て OCI 互換。つまり分断なく、業界は大きく成長している。私たちが非常に重要だと考えているのは、開発者とコミュニティの立ち位置であり、作ったものをどこでも心配なく動かせること
- 私が望むのは、今日聴いている皆さんと一緒にイノベーションの推進、コミュニティへの貢献、そしてすばらしい機能やプロダクトを提供し、あなたの仕事に役立てるようにすること


### Q4 "Kubernetesが「Docker非推奨」とすると聴いた。理由は「何らかのオープンなスタンダードに docker が従わないからだ」と。つまり、どういう意味ですか？"

- "I heard that Kubernetes is "deprecating Docker" because "something something open standards that docker doesn't show" - What does this really mean? " 
- （この質問を読み上げると、経営陣4人全員が首を横に振るアピール）
- 先ほど述べたように、全ての Docker ツールやCIコンポーネントは OCI コンプライアントに従っている
- containerd は特に Kubernetes に向けた役割を担うよう設計され、私たちはクリーンに kubernetes にフィットして動かせるようにリリースした
- 以前はdockershimコンポーネントを通して、 Docker 全ての機能をも提供していた
- containerd  が設計された目的は、dockershim コンポーネントからの移行で、動かすものだけのものにすること
- 並行して、Docker のエンタープライズ向けコンポーネントの領域はミランティスと取り組み、これまで通り保守しており、dockershim もこれまで通りこれからも動く
- その一方で、ご存じの通り、設計、提供、サポートは containerd のコミュニティを通して行う

### Q5 "Docker がオープンソースの原点に戻るというのは、Moby プロジェクトに時間とリソースを更に投入するのですか？ Moby には 3万7千もの issue がオープンですが、これらを改善する計画はありますか？"

- "Now that Docker is moving back to its open source roots, does this mean Docker will focus more time and resources in supporting the Moby project?" と "The Moby has over 3.7K open issues and support it hit/miss. What are your plans to address this moving forward?" の質問
- 私たちはオープンソース側に戻り、改めて開発者および開発者チームに集中する。これまで以上にオープンソースに対して。
- Moby や以前のオープンソース・プロジェクトを OCI 基準に対応するよう試みる作業（に取り組もうとしている？　※ここで配信トラブルでよく聞こえない）


### Q6 "AWS と Azure との統合に関する発表はありましたが、GCP はどうですか？"


- "There have been several announcements about better integration with Aws and azure. How about GCP?" の質問
- 現在の Docker はオープンなパートナーシップであり、AWS や Azure のようなサービスプロバイダと協力できるのはエキサイティング
- 個人的に GCP はこのスタイルにフィットしており、顧客の問題を解決できるなら連携できる。AWS と Azure の場合も、双方の顧客の問題、コードをクラウドにデプロイする、を解決するためだった。様々な会社が様々な解決すべき問題を抱えており、問題を解決するために連携する
- AWS と Azure の場合は Compose で周辺の問題を解決したが、Google の場合もサービスや他の領域かもしれない

### Q7 "Docker Compose を ARM アーキテクチャに対応する計画はありますか？"


- "What are Docker plans to support Docker Compose on ARM architecture?" の質問
- はい、もう動きます。将来的には絶対サポートします。Docker Desktop の ARM 対応版という意味では YES 
- 質問の背景としては、Compose がマルチアーキテクチャに対応するのか。 ARM 対応が大変だろうと、その通り。Compose でのマルチアーキテクチャは来年だろう


## 参考情報

- [All Hands の配信アーカイブ (YouTube)](https://www.youtube.com/watch?v=-A9jp-R_mBc
)

内容に関して気になる点や誤り等ございましたら、ご指摘ください。

----

Docker アドベントカレンダー 12日目は @polarbear08 さんの [Portainerで複数ホストのコンテナを一元管理してPortainerはいいぞと言う](https://qiita.com/polarbear08/items/931fe04ec228fad13092) です。お楽しみに！