Docker.ioはDockerConでDockerバージョン1.0を発表した。バージョン0.12.0をリリースしてから数日でのリリースだ。バージョン1.0は新しい機能ではなく、安定性、性能、使いやすさに注力したバージョンだ。運用環境で利用できる状態になったということはDocker.ioがDockerのサポートサービスを提供するということだ。
DockerはLinuxコンテナ上でアプリケーションを‘ビルド、シップ、実行’する仕組みだ。運送用のコンテナと同様、アプリケーションコンテナは適切な分離を提供するので、コンテナの内容について考えずにコンテナを動かすことができる。Dockerがコンテナを提供し、インフラ(例えば、最新のLinux OS)がコンテナの置き場所を提供する。開発者はコンテナの内部にコードを配置する。Dockerには3つの重要なコンポーネントがある。
- Dockerコマンドラインツール。コンテナのライフサイクルを管理し、コンテナの元になるイメージを管理する。
- Dockerfile - DevOp用のスクリプト言語、Dockerイメージを作成するのに使う。
- イメージリポジトリ。Docker.ioはデファクトの公開リポジトリを運営する。Docker Hubという名前のリポジトリだ。ユーザは独自でプライベートなリポジトリを作成したり、Gandalfのようなリポジトリにホストすることもできる。
従来のDocker Indexを模様替えしたのがDocker Hubであり、アプリケーションのマーケットプレイスのように見える。ショーケースとしてCentOS、MongoDB、MySQL、Nginx、Node.js、PostgreSQL、Redis、Ubuntu、Wordpressなどのコンテンツがある。一方、プライベートリポジトリは、数ヶ月、ベータ版の状態であったが、現在、一般利用ができるようになっている。ユーザはひとつのプライベートリポジトリを無料で利用でき、多くのプライベートリポジトリを利用したい場合はサブスクリプションを利用する。
Docker.ioはDockerを実運用環境で利用したい企業向けにサポートサービスを提供し始めている。Docker 1.0向けの‘ロングタームサポート’ではリリース後、12ヶ月をコミットする。つまり、高速で進化しているプロジェクトなので、さまざまな変更がされる可能性があるということだ。スタンダードとプレミアムというふたつのサポートプランが提供される。価格は明らかにされていない。また、Dockerプロジェクトを支援するシステムインテグレータとのパートナーシップも発表された。Dockerチームも独自のサービスを提供しており、1日の‘Jumpstart’プログラムが4950ドル、3日の‘Bootstrap’プログラムが9990ドルだ。
DockerのようなコンテナマネジメントシステムはVMwareのESX、Xen、KVMのような仮想化システムと比較される。大きな違いは、コンテナはLinuxカーネルを共有し、カーネルによって管理されるリソースも共有する。仮想マシンごとに分離されたOS(とカーネル)を持つという仕組みとは違う。Dockerは当初は、LinuX Containers (LXC)プロジェクト上で構築されていたが、2014年3月のリリースでネイティブのGo言語のコンテナライブラリを使うために、LXCは利用されなくなった。Dockerはcgroupsを使って、分離やネットワーク名前空間、AUFSのようなユニオンファイルシステムを提供している。基本的にはDockerはあらゆるcgroupsを持っているあらゆるバージョンのLinuxで動作する。だが、セキュリティや安全性やユニオンファイルシステムのサポートを考慮すると、実際は新しいカーネルのほうがいいだろう。最新のUbuntu 14.04にはDockerが含まれており、将来は、Red Hat Enterprise Linux 7やCentOS 7にも含まれる予定だ。CoreOSのような新しい軽量LinuxディストリビューションやRed HatのProject Atomicも最低限のDockerの基盤となるように準備されている。