Dockerの概要
Dockerは当初、フランスに拠点を置くdotCloudという企業の創設者であるSolomon Hykesによって立ち上げられた内部プロジェクトでした。dotCloudのクラウドサービス技術の数年に渡る革新の成果を活かしたものであり、2013年3月にApache 2.0ライセンスの下でオープンソース化されました。メインのプロジェクトコードはGitHubで維持されており、プロジェクト名はMobyに変更されています。後にDockerプロジェクトはLinuxFoundationに参加し、Open Container Initiative(OCI)を設立しました。
オープンソース化された後、Dockerは広く注目を集め、議論されるようになり、GitHubプロジェクトでは現在67,000以上のスターと18,000以上のフォークを集めています。Dockerプロジェクトの人気が高まったため、dotCloudは2013年後半にDockerに社名を変更することにしました。Dockerは当初Ubuntu 12.04で 開発および実装されましたが、Red HatはRHEL 6.5からDockerをサポートし始め、GoogleもそのPaaSプロダクトでDockerを広く活用しています。
Dockerは、Googleが導入したプログラミング言語Goを使って開発されており、Linuxカーネルのテクノロジーであるcgroups、namespaces、OverlayFSタイプのUnion FSを活用しています。オペレーティングシステムレベルの仮想化の一形態として、プロセスをカプセル化し、分離します。分離されたプロセスはホストやその他の分離されたプロセスから独立しているため、コンテナと呼ばれます。当初の実装はLXCに基づいていましたが、バージョン0.7以降はLXCが削除され、Dockerは独自に開発したlibcontainerを使用するようになりました。さらにバージョン1.11から、runCとcontainerdを使用するようになりました。
Dockerとは
Dockerはアプリケーションの開発、出荷、実行のためのオープンなプラットフォームです。Dockerはアプリケーションをインフラストラクチャから分離することで、ソフトウェアを素早く提供できるようにします。Dockerを使えば、アプリケーションを管理する方法と同じ方法でインフラストラクチャを管理できます。Dockerのコードの出荷、テスト、デプロイの手法を活用することで、コーディングから実際の運用までの遅延を大幅に削減できます。