Edited at

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

More than 3 years have passed since last update.


概要

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


  • リリースの詳細は 0.7 以降について記載しています

  • 関連ベンダー・プロジェクトについては書き出すときりがないため、個人的に重要と感じたネタのみ書いてます。


過程


[2013/3] Docker オープンソース化

PaaS ベンダーの dotCloud社が、Docker をオープンソースとして公開。

【参考リンク】


[2013/10/29] 社名を dotCloud から Docker へ変更

これまで dotCloud, Inc だった社名を Docker, Inc に変更。

【参考リンク】


[2013/11/26] Docker 0.7 リリース

【主な変更点】


  • 主要な全Linuxディストリビューションに対応

    これ以前は特定のディストリビューションやカーネルのパッチ適用が必要だった(AUFSを使うため)。

  • Storage Driver の導入

    Dockerが使うファイルシステムを選択する機構。AUFS、Device Mapper、VFS のドライバが同梱された。Dockerはそれまで、標準 Linuxカーネルに含まれてない AUFS を使っていたためディストリビューションによってはカーネルのパッチ適用が必要だったが、それが不要になった。

  • その他、Links、コンテナの名前付けなど。

【参考リンク】


[2013/12/2] Google Compute Engine での Docker サポート

Google Compute Engine が正式サービスとしてリリースされ、Docker のサポートも発表された。

【参考リンク】


[2014/2/4] Docker 0.8 リリース

機能よりも品質を優先した初のリリース。

【主な変更点】


  • Mac OS X のサポート

  • Storage Driver でのBTRFS 対応(Experimental)

【参考リンク】


[2014/3/10] Docker 0.9 リリース

LXC から libcontainer へ置き換えがメイン。

【主な変更点】


  • Execution Driver の実装とlibcontainer の導入

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

【参考リンク】


[2014/4/8] Docker 0.10 リリース

Verson 1.0 に向けて、品質向上や運用系ツールとの連携を主としたリリース。

【主な変更点】


  • systemd プラグイン

  • Docker API への TLS/SSL証明書を用いたアクセス制限

【参考リンク】


[2014/4/8] AWS Beanstalk での Docker サポート

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

【参考リンク】


[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)など。

【参考リンク】


[2014/5/29] Cloud Foundry Foundation への参加を発表

Docker 社が、PaaS基盤ソフトを開発している Cloud Foundry Foundation への参加を発表。

【参考リンク】


[2014/6/9] Docker 1.0 リリース

本番環境への導入に向けた正式版 1.0 のリリース。

【主なアナウンス】


  • 品質、機能、APIの安定性が企業で使えるレベルに達した

  • 本番環境導入に向けたドキュメント、サポートなどを提供する

  • Docker はプラットフォームを表す名称とし、ランタイムやパッケージツールは Docker Engineとする。

  • Docker Hub とオフィシャル リポジトリの発表

【主な変更点】


  • Dockerfile での COPY の追加、ADD の改善

  • 実行中のコンテナの pause と unpause

    など。

【参考リンク】


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

Google AppEngine の Managed Virtual Machines で Docker のビルドやデプロイができるようになった。

Kubernetes はコンテナのオーケストレーションツールで、 OSSとして公開された

【参考リンク】


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

【主な変更点】


  • .dockerignore ファイル
    イメージのビルド時に、Dockerデーモンに送らないファイル・ディレクトリを指定する

  • コミット時のコンテナのPause

    実行中のコンテナをコミットする際に、そのコンテナをPauseさせる。

  • その他、ログ取得のtailコマンドの追加、docker build の tar ファイルを渡せるようになったなど。

【参考リンク】


[2014/7/10] Kubernetes コミュニティに参加

Docker社、および、Microsoft、Red Hat、IBM、Mesosphere、CoreOS、SaltStack が Kubernetes コミュニティ に参加。

【参考リンク】


[2014/7/11] CoreOS の最初の安定板がリリース

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

【参考リンク】


[2014/7/23] Orchard 社を買収

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

【参考リンク】


[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 フラグを追加

    利用するデバイスファイルを指定する

などなど。

【参考リンク】


[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 コミュニティへの参加

【参考リンク】


[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 アプリを配備できるようになる

【参考リンク】


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

【主な変更点】


  • Docker イメージへのデジタル署名

    Docker イメージの改ざんを防ぐための機能でテクニカルプレビューとして追加。また、Docker Hub のオフィシャル リポジトリにもデジタル署名が付けられた。

  • docker exec コマンドの追加

    Docker コンテナ内で新たにプロセスを実行する。デバッグ用途で使うもので、Docker社の推奨「1つのコンテナに、1つのアプリ」は変更なし。nsinit や nsenter の置き換え。

  • docker create コマンドの追加

    docker run では「コンテナの作成と実行」が行われるが、docker create では「コンテナの作成」だけが行われる。docker start/stop と合わせて、細かくコンテナの動作を制御したいときに使用。

  • docker run に --security-opt フラグを追加

    カスタムの SELinux や AppArmor のラベルとプロファイルを設定する

【参考リンク】