気になっているニュースを適当に書き連ねてみた.
- 4月・5月号 http://qiita.com/AkihiroSuda/items/e4785014c6c50496f11b
- 3月号 http://qiita.com/AkihiroSuda/items/746328a8ee59301807b6
- Docker 1.13号 http://qiita.com/AkihiroSuda/items/d762b8cdc1d704f8efdf
- Docker 1.12号 http://qiita.com/AkihiroSuda/items/ba3e118389e0a550c000
Docker関連
Docker 17.06 (6/28)
Docker 17.03以来,2番目のquarterly release (新スキームでの安定版).次のquaterly releaseは17.09.
17.05から,あまり大きい変更はないが,Multi-stage Dockerfileをサポートするquarterly releaseとしては初.
また,このバージョンからは,Moby Projectのリポジトリ (https://github.com/moby/moby) ではなく,Docker社のリポジトリ (https://github.com/docker/docker-ce) のソースを用いてビルドされるようになった.
両リポジトリの内容はほぼ同じ.Moby Projectのリポジトリへの変更は,Docker社員が随時Docker社のリポジトリにcherry-pickしてくれる.
Docker 17.07 (8月になっても未リリース..)
-
~/.docker/config.json
にプロキシの設定を書いておくと,docker build
時やdocker run
時に使われるようになった. https://github.com/docker/cli/pull/93 -
docker ps
時のコンテナオブジェクトに対するロックが無くなった.劇的に軽くなったように感じられる.https://github.com/moby/moby/pull/31273 -
docker build
時にデーモンに送信されるコンテキストを,2回目以降は差分のみ転送できるようになった. https://github.com/moby/moby/pull/32677 - "Linux containers on Windows" (LCOW) のコードも部分的に入り始めたが,まだ動かない.
Moby Project関連
※ Dockerの上流となっているcommunity-drivenなプロジェクト. 大まかには,Docker : Moby Project ≒ RHEL : Fedora と考えてよい.
Moby Core (7/12)
4月,github.com/docker/docker
リポジトリが github.com/moby/moby
にリネームされたが,近々 更に github.com/moby/moby-core
にリネームされる予定.
従来のdockerd
としての"moby" (→Moby Core)と,Mobyコンポーネントを組み合わせるツールとしての"moby" (github.com/moby/tool
)とが紛らわしいための措置.
/usr/bin/dockerd
のバイナリも,/usr/bin/moby-core-server
のような名前になる見込み.
他にも,Dockerfileなど名前に"docker"とつくものは全て,Moby Coreからは順次削除される見込み. https://forums.mobyproject.org/t/topic-find-a-good-and-non-confusing-home-for-the-remaining-monolith/37/66
BuildKit (6/24)
docker build
を再実装する構想.
- low-levelなフォーマットとして「LLB」が提供される.LLBは人間が直接読み書きするものではない.
- LLBの命令間の依存性は,DAGとして表現される.並行性の抽出などによる高速化が可能となる.
- 従来のDockerfileは,LLBに変換されて実行される.今後,Dockerfile以外の上位言語も出てくるかもしれない?
OCI関連
Image Spec & Runtime Spec v1.0発表 (7/19)
https://www.opencontainers.org/announcement/2017/07/19/open-container-initiative-oci-releases-v1-0-of-container-standards
https://blog.docker.com/2017/07/oci-release-of-v1-0-runtime-and-image-format-specifications/
2年かかってようやく,イメージ仕様・ランタイム仕様の標準化がなされた.
今後は,OCI仕様準拠実装の認定などが,OCIの主なミッションとなりそう.https://github.com/opencontainers/certification
イメージ配布プロトコル(Docker Registry HTTP APIがde facto standard)については,今のところOCIのスコープ外であるが,今後OCI入りする可能性もあり.
containerd関連
Docker・Kubernetesなどで共通で使われる予定の,次世代ランタイム.
alphaステージに到達 (7/20)
実装予定の機能はほぼ実装されたが,まだWindows対応などの課題あり.
Swarmkit関連
CNI対応のPR (7/6)
libnetwork (CNM)に加え,CNIもSwarmkitで使えるようになる.
今後はDockerでもKubernetesでも,CNIが共通のフレームワークとなっていきそう.
Kubernetes関連
Kubernetes 1.7リリース (6/29)
StatefulSetがベータになった.
参考: http://qiita.com/tkusumi/items/817cf85917efd24c7a4f
Azure関連
Azure Container Instances (7/26)
いちいちVMのインスタンスを立ち上げずに,直接コンテナを起動できるサービス.
Kubernetesでもオーケストレートできる. https://github.com/azure/aci-connector-k8s
ようやくCaaSらしいCaaSが出てきた印象.
Draft (5/31)
Dockerfileやchartをいちいち書かなくても,簡単にサービスをKubernetesにデプロイできるツール
Oracle関連
Smith, Crashcard, & Railcar (6/29)
コンテナ関連のOSSが3つ同時に発表された.
- Smith: 「microcontainer」をビルドするツール.イメージはread-only,shell無しが基本.軽くてセキュア.(https://blogs.oracle.com/developers/the-microcontainer-manifesto)
- Crashcard: 「microcontainer」用のデバッガ.microcontainer内にshellをインストールすることなく,tcpdump, straceやgdbなどを実行できる.
- Railcar: Rustで書かれたOCIランタイム実装.Rustで書かれているので,GCのオーバヘッドや,namespace関連の問題が無い.
containerd, DockerのSolaris対応
Docker 1.13でSolarisサポートが入りかけていたが,その後動きがなかった.
最近,作業が再開された模様.
https://github.com/containerd/containerd/pull/1224