T1#open-source

Docker 公開 ── 5分間のトークがコンテナを普及させた

出典dotCloud, Inc. (Wikimedia Commons) · Apache License 2.0 · Commons で見る ↗

メタデータ

日付
年代
2010s
Tier
T1
出典数
11
関連項目
01
Tags
#open-source

Docker が初めて公の場に姿を見せたのは 2013年3月15日、カリフォルニア州サンタクララで開かれた PyCon US 2013 の5分間のライトニングトークである。話したのは小さな PaaS 企業 dotCloud の Solomon Hykes で、題は「The future of Linux Containers」。最初のタグ付きリリース v0.1.0 は2013年3月26日に続いた。7か月後に dotCloud は社名を Docker, Inc. に改め、Docker 1.0 は2014年6月9日に出た。

Docker がコンテナを発明したわけではない。頼った Linux カーネルの機能は、10年かけて積み上がってきたものだった。Docker がしたのはそれを使いやすくすることで、結局それこそが決定的な部分だった。

PyCon の5分間

PyCon US 2013 の本会議は3月15日から17日までで、その前に2日間のチュートリアル、後に4日間のスプリントが付いていた。Hykes の枠はライトニングトークで、収録日は3月15日(金)。PyVideo に残る録画の説明は前提をこう書く。dotCloud がどうやってコンテナを動かしているのかに関心を持つ人は多かったが、仕組みが複雑すぎて公に語れなかった ── Docker ができるまでは。

1週間後の3月21日、Docker のブログは同じ題で録画を載せ、Hykes が「shows docker to the public for the first time at PyCon 2013」と一行で紹介した。

つまり Docker は、dotCloud が自社ですでにやっていたこと ── 顧客のアプリケーションを Linux コンテナで動かすこと ── を外に開く道具として始まった。

Docker の土台

Linux のコンテナは仮想マシンではない。カーネルが隔離し制限をかけた普通のプロセスで、ホスト上の他のすべてと1つのカーネルを共有する。仕事の大半を担う2つのカーネル機能は、どちらも Docker より古い。

機能役割起源
namespacesマウント、プロセス ID、ネットワークなどの見え方をプロセスごとに分ける最初の namespace(マウント)は2002年の Linux 2.4.19
cgroups(コントロールグループ)CPU・メモリ・I/O の使用を制限し計測する2006年に Google で Paul Menage と Rohit Seth が process containers として着手。2008年1月の Linux 2.6.24 で本流入り
LXC上の2つからコンテナを作るユーザー空間のツール2014年まで Docker の実行層として使われた

さらにさかのぼれば、1つのカーネルを共有する隔離環境は FreeBSD の jails や Solaris Zones にまで続く。用語集の コンテナ を参照。初期の Docker はカーネルを直接は呼ばず、LXC を操作していた。

Docker が加えたのは作業の流れである。アプリケーションと、それが必要とするものすべてをファイルに書き、イメージ としてビルドし、レジストリに送り、どの Linux マシンにも取ってきて同じように動かす。

道具から会社へ

日付出来事
2013年3月15日PyCon US(サンタクララ)でライトニングトーク
2013年3月26日GitHub で v0.1.0 をタグ付け
2013年10月29日dotCloud が Docker, Inc. に改称
2014年3月10日Docker 0.9。既定の実行層を LXC から自前の libcontainer へ
2014年6月9日Docker 1.0 と Docker Hub。サンフランシスコの第1回 DockerCon

2013年10月29日に dotCloud が Docker, Inc. になったとき、InfoQ は CEO の Ben Golub が挙げた理由を伝えている。コンテナ化は次世代のコンピューティングを可能にする最も重要な要素の一つになりうるし、Docker には PaaS 事業より大きな影響力がある、というものだ。公開から7か月の時点で同社が示した数字は、コンテナのダウンロード14万回以上、GitHub のスター6,700以上、コントリビューター200人近く(うち92%が社外)だった。

2014年3月10日、Hykes は Docker 0.9 を発表し、LXC を選択制にした。新しい既定は Go で書かれたライブラリ libcontainer で、カーネルの namespaces や cgroups などを直接呼ぶ。同じリリースは実行ドライバーのインターフェースも導入し、Hykes はそれで扱いうる他の隔離手段として OpenVZ、systemd-nspawn、libvirt-lxc、qemu/kvm、BSD の jails、Solaris Zones、素の chroot を挙げた。Docker は自らを隔離の仕組みそのものではなく、その上に載る層として位置づけていた。Docker 1.0 は2014年6月9日、第1回 DockerCon に合わせて出た。LWN は、イメージを集める中央レジストリ Docker Hub の開始とあわせてこれを報じている。

何を引き起こしたか

翌日の2014年6月10日、DockerCon 2日目の基調講演で Google の Eric Brewer は、コンテナを多数の機械にまたがって動かすオープンソースのシステム Kubernetes を発表した。同じ日の Google のブログ記事は、Google ではあらゆるものが Linux コンテナで動いており、毎週20億を超えるコンテナを起動していると書いている。

Amazon も2014年11月に続いた。AWS Lambda を発表した re:Invent の同じ基調講演で、Docker コンテナ向けの EC2 Container Service が発表されている。5分間のトークから20か月足らずで、クラウド市場を開いた2社 ── S3 の Amazon と App Engine の Google ── がどちらも、Docker コンテナを軸にしたサービスを作っていた。

カーネル側の物語は Linux から始まる。前後の流れは クラウドコンピューティングの年表 にある。

よくある質問

Docker はいつ、誰が公開したのですか。
2013年3月15日、PaaS 企業 dotCloud の Solomon Hykes が、サンタクララで開かれた PyCon US 2013 の5分間のライトニングトーク「The future of Linux Containers」で初めて公に示しました。最初のタグ付きリリース v0.1.0 は同年3月26日です。
Docker がコンテナを発明したのですか。
していません。資源制限を担う cgroups は2008年1月の Linux 2.6.24 で本流に入り、隔離を担う namespaces は2002年の 2.4.19 から段階的に足されたものです。初期の Docker はそれらを LXC 経由で使っていました。Docker の寄与は、イメージのビルドと配布と扱いやすい CLI でそれらを一般の開発者に届けた点にあります。
Docker 1.0 はいつ出たのですか。
2014年6月9日です。サンフランシスコで開かれた第1回 DockerCon に合わせて公開され、イメージの中央レジストリ Docker Hub も同時に始まりました。
dotCloud はいつ Docker, Inc. になったのですか。
2013年10月29日です。CEO の Ben Golub は、Docker には元の PaaS 事業より大きな影響力があると判断したと説明しました。

出典

  1. 一次資料Lightning Talk — The future of Linux Containers, Solomon Hykes, PyCon US 2013 (recorded 2013-03-15) — PyVideo

    トークの題、話者、収録日

    取得日: 2026-10-05

  2. 一次資料The future of Linux Containers — Docker Blog, March 21, 2013 (archived; the live URL now redirects to the blog index)

    PyCon 2013 で Docker を初めて公開したという Docker 自身の記述

    取得日: 2026-10-05

  3. 一次資料Docker 0.9: Introducing execution drivers and libcontainer — Solomon Hykes, Docker Blog, March 10, 2014

    LXC を選択制にし libcontainer を既定にしたこと

    取得日: 2026-10-05

  4. 二次資料dotCloud Renamed Docker — InfoQ, October 29, 2013

    改称の日付、Ben Golub の説明、公開7か月時点の数字

    取得日: 2026-10-05

  5. 二次資料DockerCon 2014 — Josh Berkus, LWN.net, June 18, 2014

    Docker 1.0 の日付と Docker Hub の開始

    取得日: 2026-10-05

  6. 二次資料PyCon US 2013 — Fedora Project Wiki

    取得日: 2026-10-05

  7. 三次資料cgroups — Wikipedia

    取得日: 2026-10-05

  8. 三次資料Linux namespaces — Wikipedia

    取得日: 2026-10-05

  9. 三次資料Docker (software) — Wikipedia

    取得日: 2026-08-03

最終更新:

共有