dockerと称するもの

2018年02月28日 水曜日


【この記事を書いた人】
田口 景介

社会人生活の半分をフリーランス、半分をIIJで過ごすエンジニア。元々はアプリケーション屋だったはずが、クラウドと出会ったばかりに半身をインフラ屋に売り渡す羽目に。現在はコンテナ技術に傾倒中だが語りだすと長いので割愛。タグをつけるならコンテナ、クラウド、ロードバイク、うどん。

「dockerと称するもの」のイメージ

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 自分なりの解釈も含むので、誤認があればご指摘ください。

田口 景介

2018年02月28日 水曜日

社会人生活の半分をフリーランス、半分をIIJで過ごすエンジニア。元々はアプリケーション屋だったはずが、クラウドと出会ったばかりに半身をインフラ屋に売り渡す羽目に。現在はコンテナ技術に傾倒中だが語りだすと長いので割愛。タグをつけるならコンテナ、クラウド、ロードバイク、うどん。

Related
関連記事