dockerと称するもの
2018年02月28日 水曜日
Docker, Inc is Dead
https://chrisshort.net/docker-inc-is-dead/
このブログのタイトルは当初「Docker is Dead」だったと思うのだが、いつのまにか「Docker Inc is Dead」に修正されていた。
文章は特に変わっていないようなので、元々言いたいことはそういうことだ。
みんなdockerは好きだけど、docker Incには色々思うところがあるのだ。
それにしても、dockerという単語の混乱ぶりはすごい。
それもこれも、docker Incがdockerの意味するものを次々と変えていってしまったからだ。どの時期に何をdockerと呼んだかをまとめると、以下の表のようになる(*1)。
赤字がその時点で主にdockerと呼ばれたものだ。
docker 0.1~1.10 |
docker 1.11 |
docker 1.12~1.13 |
docker 17.03~ |
docker 18.02~ |
|
---|---|---|---|---|---|
パッケージ | docker-ce, docker-ee | docker-ce, docker-ee | |||
コンテナエンジン | docker | dockerd | dockerd + swarm | moby(dockerd + swarm) | moby(dockerd + swarm), kubernetes |
コンテナランタイム | containerd + runc | containerd + runc | containerd + runc | containerd + runc |
元々モノリシックなプログラムでしかなかったdockerをデーモンであるdockerdとツールとしてのdockerに分離し、さらに標準仕様であるOCIに沿う形でコンテナエンジンとコンテナランタイムに分離したところまではよかったはずなのだが、その後がまずかった。
コミュニティはコンテナエンジンも含めてオープンであって欲しかったのだが、Docker Incはここを管理下に置き続けたかったのだろう。
mobyプロジェクトを興してよりオープンな体制をうたってみたものの時すでに遅く、それどころか混乱を招いただけだったように思える。
その後、流れが一気にkubernetesへ向かうのはご存じのとおり。
今でもあちこちにdockerという単語は登場するものの、結局今のDocker Incがdockerと称しているのは、docker-ee(enterprise edition), docker-ce(communitiy edition)というパッケージである。
類するものは何かと言えば、Rancher Labs社のRancherであり、RedHat社のOpenShiftである。だいぶイメージと違うのではないだろうか。
もっとも、containerdのメンテナはDocker IncのメンバーとNTTの須田さんという構成であるし、コンテナイメージの生成はdockerdに依存しているので、コンテナエコシステムにおいてDocker Incが果たしている役割はまだまだ大きい。
それにユースケースによってはswarmの方がライトで使いやすく、kubernetesと使い分けて便利に利用しているので、このまま歴史に埋もれるようなことになってもらいたくはない。そのようなことになるぐらいならば、ユーザーの勝手な言い分ではあるが、コミュニティの賛同を得られるような形でプロジェクトを運営してくれる団体に寄贈するのもよいのではないかと思う。そうすれば、kubernetes一強にならずにすむだろう。
ただ、A*acheに捨てるような任せ方はご勘弁を。
脚注 *1 自分なりの解釈も含むので、誤認があればご指摘ください。