Docker 誕生から現在までの過程を俯瞰する 1 (2013/3～2014/10)

# 概要
Docker が今までどんな過程を経て成長してきたか俯瞰したかったため、Docker の誕生から現在までのリリースや出来事、関連ベンダー・プロジェクトの動きなどをまとめてみました。

* リリースの詳細は 0.7 以降について記載しています
* 関連ベンダー・プロジェクトについては書き出すときりがないため、個人的に重要と感じたネタのみ書いてます。


# 過程

[2013/3] Docker オープンソース化
--------------------------------------------------------------------
PaaS ベンダーの dotCloud社が、Docker をオープンソースとして公開。

【参考リンク】

* https://blog.docker.com/2013/03/opening-docker/
* http://www.infoq.com/news/2013/03/Docker

[2013/10/29] 社名を dotCloud から Docker へ変更
--------------------------------------------------------------------
これまで dotCloud, Inc だった社名を Docker, Inc に変更。

【参考リンク】

* https://blog.docker.com/2013/10/dotcloud-is-becoming-docker-inc/
* http://www.publickey1.jp/blog/13/dotclouddockerdocker.html

[2013/11/26] Docker 0.7 リリース
--------------------------------------------------------------------
【主な変更点】

* 主要な全Linuxディストリビューションに対応  
  これ以前は特定のディストリビューションやカーネルのパッチ適用が必要だった(AUFSを使うため)。
* Storage Driver の導入  
  Dockerが使うファイルシステムを選択する機構。AUFS、Device Mapper、VFS のドライバが同梱された。Dockerはそれまで、標準 Linuxカーネルに含まれてない AUFS を使っていたためディストリビューションによってはカーネルのパッチ適用が必要だったが、それが不要になった。
* その他、Links、コンテナの名前付けなど。

【参考リンク】

* https://blog.docker.com/2013/11/docker-0-7-docker-now-runs-on-any-linux-distribution/
* http://www.1x1.jp/blog/2013/12/storage-driver-on-docker07.html
* http://qiita.com/DQNEO/items/ee0caf80b056487cb762
* http://www.publickey1.jp/blog/13/docker_07linux.html

[2013/12/2] Google Compute Engine での Docker サポート
--------------------------------------------------------------------
Google Compute Engine が正式サービスとしてリリースされ、Docker のサポートも発表された。

【参考リンク】

* http://googlecloudplatform.blogspot.jp/2013/12/google-compute-engine-is-now-generally-available.html
* http://www.publickey1.jp/blog/13/google_compute_enginedockerfreebsdcoreos1gb4.html

[2014/2/4] Docker 0.8 リリース
--------------------------------------------------------------------
機能よりも品質を優先した初のリリース。

【主な変更点】

* Mac OS X のサポート
* Storage Driver でのBTRFS 対応(Experimental)

【参考リンク】

* https://blog.docker.com/2014/02/docker-0-8-quality-new-builder-features-btrfs-storage-osx-support/
* http://www.atmarkit.co.jp/ait/articles/1402/10/news114.html

[2014/3/10] Docker 0.9 リリース
--------------------------------------------------------------------
LXC から libcontainer へ置き換えがメイン。

【主な変更点】

* Execution Driver の実装とlibcontainer の導入  
  Execution Driver は、コンテナの実行ドライバを選択する機構。Dockerはそれまで LXCを使っていたが、Execution Driver の導入と同時に libcontainer を使用する Native ドライバに置き換え。libcontainer は独自開発したモジュールでカーネルのコンテナAPIを直接呼び出す。 LXCも利用可能だがオプション扱い。

【参考リンク】

* https://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/
* https://jpetazzo.github.io/2014/03/23/lxc-attach-nsinit-nsenter-docker-0-9/
* http://www.infoq.com/news/2014/03/docker_0_9
* http://www.publickey1.jp/blog/14/docker_09lxc.html

[2014/4/8] Docker 0.10 リリース
--------------------------------------------------------------------
Verson 1.0 に向けて、品質向上や運用系ツールとの連携を主としたリリース。

【主な変更点】

* systemd プラグイン
* Docker API への TLS/SSL証明書を用いたアクセス制限

【参考リンク】

* https://blog.docker.com/2014/04/docker-0-10-quality-and-ops-tooling/

[2014/4/8] AWS Beanstalk での Docker サポート
--------------------------------------------------------------------
Docker のサポートにより、Beanstalk で好みの開発言語やフレームワークを利用できるようになった。

【参考リンク】

* http://aws.typepad.com/aws_japan/2014/04/aws-elastic-beanstalk-for-docker.html
* https://blog.docker.com/2014/04/aws-elastic-beanstalk-launches-support-for-docker/
* http://dev.classmethod.jp/cloud/aws/beanstalk-and-docker/

[2014/5/7] Docker 0.11 リリース
--------------------------------------------------------------------
正式版(Verson 1.0)に向けた最初の候補版。

【主な変更点】

* SE Linux サポート
* Host networking  
  host networking モードのコンテナから、ホストのネットワークインターフェイスに直接アクセス可能になった
* Link hostnames  
  コンテナがLink接続されているときに、お互いをホスト名で見つけられるように
* その他、Link hostnames(Link接続しているコンテナ間で相手をホスト名で見つける)、Ping Docker daemon(Docker デーモンへのPing)など。

【参考リンク】

* https://blog.docker.com/2014/05/docker-0-11-release-candidate-for-1-0/
* http://www.publickey1.jp/blog/14/docker_01110.html

[2014/5/29] Cloud Foundry Foundation への参加を発表
--------------------------------------------------------------------
Docker 社が、PaaS基盤ソフトを開発している Cloud Foundry Foundation への参加を発表。 

【参考リンク】

* https://blog.docker.com/2014/05/docker-joins-cloud-foundry-foundation/
* http://www.publickey1.jp/blog/14/dockercloud_foundry_foundationcloud_foundrydocker.html

[2014/6/9] Docker 1.0 リリース
--------------------------------------------------------------------
本番環境への導入に向けた正式版 1.0 のリリース。

【主なアナウンス】

* 品質、機能、APIの安定性が企業で使えるレベルに達した
* 本番環境導入に向けたドキュメント、サポートなどを提供する
* Docker はプラットフォームを表す名称とし、ランタイムやパッケージツールは Docker Engineとする。
* Docker Hub とオフィシャル リポジトリの発表

【主な変更点】

* Dockerfile での COPY の追加、ADD の改善
* 実行中のコンテナの pause と unpause  
など。

【参考リンク】

* https://blog.docker.com/2014/06/its-here-docker-1-0/
* https://blog.docker.com/2014/06/announcing-docker-hub-and-official-repositories/
* http://www.publickey1.jp/blog/14/docker_10docker.html
* http://www.publickey1.jp/blog/14/docker_hubdockerdocker.html
* http://ameblo.jp/tech-cz/entry-11876197360.html

[2014/6/10] Google AppEngine での Docker 正式サポート、Kubernetes の公開
--------------------------------------------------------------------

Google AppEngine の Managed Virtual Machines で Docker のビルドやデプロイができるようになった。
Kubernetes はコンテナのオーケストレーションツールで、 [OSSとして公開された](https://github.com/googlecloudplatform/kubernetes)。

【参考リンク】

* http://googlecloudplatform.blogspot.jp/2014/06/an-update-on-container-support-on-google-cloud-platform.html
* http://www.publickey1.jp/blog/14/google_app_enginedocker.html

[2014/7/3] Docker  1.1.0 リリース
--------------------------------------------------------------------

【主な変更点】

* .dockerignore ファイル
イメージのビルド時に、Dockerデーモンに送らないファイル・ディレクトリを指定する
* コミット時のコンテナのPause  
  実行中のコンテナをコミットする際に、そのコンテナをPauseさせる。
* その他、ログ取得のtailコマンドの追加、docker build の tar ファイルを渡せるようになったなど。

【参考リンク】

* https://blog.docker.com/2014/07/announcing-docker-1-1/
* http://www.publickey1.jp/blog/14/docker_11.html
* http://www.infoq.com/jp/news/2014/07/docker-ignore-pause


[2014/7/10] Kubernetes コミュニティに参加
--------------------------------------------------------------------
Docker社、および、Microsoft、Red Hat、IBM、Mesosphere、CoreOS、SaltStack が Kubernetes コミュニティ に参加。

【参考リンク】

* http://googlecloudplatform.blogspot.jp/2014/07/welcome-microsoft-redhat-ibm-docker-and-more-to-the-kubernetes-community.html
* http://www.itmedia.co.jp/news/articles/1407/11/news041.html

[2014/7/11] CoreOS の最初の安定板がリリース
--------------------------------------------------------------------
Docker Engine の実行に最適化した軽量の Linux ディストリビューションである CoreOS の安定板がリリース。

【参考リンク】

* https://coreos.com/blog/stable-release/
* http://www.infoq.com/jp/news/2014/08/coreos-first-stable-release
* http://www.publickey1.jp/blog/14/dockerlinuxcoreosawsgoogle_compute_engine.html

[2014/7/23] Orchard 社を買収
--------------------------------------------------------------------
オーケストレーションツールの fig を開発していた Orchard 社を、Docker 社が買収。

【参考リンク】

* http://www.businesswire.com/news/home/20140723005443/en/Docker-Acquires-Orchard-Extend-Platform-Leadership#.VapTs_ntlBc

[2014/8/22] Docker  1.2.0 リリース
--------------------------------------------------------------------

【主な変更点】

* docker run コマンドに --restart フラグを追加  
  コンテナの再起動ポリシーを no(デフォルト)、on-failure、alwaysから指定可能
* docker run コマンドに --cap-add, --cap-drop フラグを追加  
  コンテナの権限を細かく調整できる。おそらく、Linux の capability を使う機能。
* docker run コマンドに --device フラグを追加  
  利用するデバイスファイルを指定する

などなど。

【参考リンク】

* https://blog.docker.com/2014/08/announcing-docker-1-2-0/
* http://news.mynavi.jp/news/2014/08/25/231/

[2014/8/25] VMware社 が Docker、Google との協業を発表
--------------------------------------------------------------------
VMware 社のイベントである VMworld 2014 にて、VMware と Docker、Google の協業が発表された。

【主なアナウンス】

* VMware Fusion、vSphere、vCloud Air を、Docker Engine にとってすぐれた実行環境とする(ensure that the Docker Engine runs as a first-class citizen)
* Docker関連のOSSプロジェクトである libswarm、libcontainer、libchan へのコントリビュートを行う
* DockerHub と、vCloud Air、vCenter Server、vCloud Automation Center の相互運用性を向上
* Kubernetes コミュニティへの参加

【参考リンク】

* https://blog.docker.com/2014/08/docker-vmware-1-1-3/
* http://www.vmware.com/company/news/releases/vmw-newsfeed/VMware-Teams-With-Docker,-Google-and-Pivotal-to-Simplify-Enterprise-Adoption-of-Containers/1872989
* http://www.publickey1.jp/blog/14/vmwaredockerkubernetes.html
* https://www.nisshoblocks.com/p/2439/

[2014/10/15] Microsoft が Docker のサポートを発表
--------------------------------------------------------------------
Microsoft が次期Windows Server での Docker サポートや Microsoft Azureとの統合を発表。

【主なアナウンス】

* 次期Windows Server での Docker サポート  
  Docker Engine を次期 Windows Serverに統合する。また、Docker Engine for Windows Server はオープンソースプロジェクトとして開発する。
* Windows ネイティブな Docker クライアントのサポート  
  Windows 版 docker クライアントで、Windows/Linux の両環境を管理可能にする
* Docker Hub から、Docker for Windows Server のコンテナイメージを取得可能にする
* Microsoft Azure Gallery と管理ポータルに、Docker Hub を統合する  
  Azure上で、Linux と Windows のイメージを簡単に配備・実行できるようになる
* Docker Open Orchestration API を使用した Azure 上のマルチコンテナー Docker アプリのサポート  
  Docker コマンドラインから、Azure 上へ直接 Docker アプリを配備できるようになる

【参考リンク】

* http://weblogs.asp.net/scottgu/docker-and-microsoft-integrating-docker-with-windows-server-and-microsoft-azure
* http://blogs.msdn.com/b/windowsazurej/archive/2014/10/20/blog-new-windows-server-containers-and-azure-support-for-docker.aspx
* https://blog.docker.com/2014/10/docker-microsoft-partner-distributed-applications/
* http://www.publickey1.jp/blog/14/dockerwindows_serverdockermicrosoft_azuredocker_hub.html
* http://jp.techcrunch.com/2014/10/16/20141015microsoft-partners-with-docker-to-bring-container-support-to-windows-server/


[2014/10/16] Docker  1.3 リリース
--------------------------------------------------------------------

【主な変更点】

* Docker イメージへのデジタル署名  
  Docker  イメージの改ざんを防ぐための機能でテクニカルプレビューとして追加。また、Docker Hub のオフィシャル リポジトリにもデジタル署名が付けられた。
* docker exec コマンドの追加  
  Docker コンテナ内で新たにプロセスを実行する。デバッグ用途で使うもので、Docker社の推奨「１つのコンテナに、１つのアプリ」は変更なし。nsinit や nsenter の置き換え。
* docker create コマンドの追加  
  docker run では「コンテナの作成と実行」が行われるが、docker create では「コンテナの作成」だけが行われる。docker start/stop と合わせて、細かくコンテナの動作を制御したいときに使用。
* docker run に --security-opt フラグを追加  
  カスタムの SELinux や AppArmor のラベルとプロファイルを設定する

【参考リンク】

* https://blog.docker.com/2014/10/docker-1-3-signed-images-process-injection-security-options-mac-shared-directories/
* http://osdn.jp/magazine/14/10/21/175300
* http://www.publickey1.jp/blog/14/docker_13docker.html