Docker(ドッカー)とは、オープンソースのコンテナ型仮想化ソフトウェアです。ソフトウェアコンテナ内のアプリケーションデプロイメントを自動化します。
Dockerは、性能面での劣化を極力排除したコンテナ技術を採用しており、アプリケーション/OSをパッケージイメージ化することにより極めて集約度の高いITシステムを実現することができます。
Dockerは、API提供/既存成果物の入手/成果物アップロードなどで、効率よく成果物管理/リユースする仕組みがあります。そして、それらの一連の作業を自動化する仕組みも備わっています。
クラウド基盤ソフトウェアに比べて、導入のハードルが比較的低く、簡単に試すことができます。そのため、多くの開発者やIT部門の管理者での利用が急激に広まっています。
コンテナ管理の手軽さ/インスタンス操作の高速性は、クラウドサービス/ビッグデータ基盤などを管理するためのIT基盤として高く評価されています。
Dockerは、コンテナ型仮想化ソフトウェアのデファクトスタンダードになる勢いで、中小規模からエンタープライズ規模まで、さまざまな領域で幅広く利用されています。
Dockerは「コンテナ型仮想化」と呼ばれる仮想化技術を利用しています。
1つのOSにコンテナといわれる「独立したサーバと同様の振る舞いをする区画」を複数作り、それを個別のユーザ/サービスに割り当てます。同じOS上に構築するため、すべてのコンテナは同じOSしか使えません。
コンテナには、個別にCPU/メモリ/ストレージなどを割り当てる必要がないため、システムリソースのオーバーヘッドが少なくて済みます。そのため、同じ性能のハードウェアならば、より多くのコンテナを作ることができます。
一般的に「Docker」と呼ばれているコンテナ管理技術は「Docker Engine」が正式名称となっています。
「Docker Engine」に、アプリケーション開発/配布用Webサービス「Docker Hub」、API、サードパーティエコシステムなどを含めたプラットフォーム全体の総称が「Docker」となっています。
DotCloud社(現 Docker Inc.)が、開発者/IT部門をターゲットとしたアプリケーションやOSの開発/配備を行うための基盤ソフトウェアとして開発し、2013年にリリースしました。
このソフトウェアは、オープンソースソフトウェア「Docker」として公開され、その使い勝手の良さから、多くの開発者/IT部門の管理者で瞬く間に利用されていきました。
Dockerのライセンスは「Apache License Version 2.0」です。
詳細について、こちらを参照ください。
→GitHub →docker/docker-ce →LICENSE
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「gVisor」など。
Dockerはコンテナ構成を、すべて「Dockerfile」というテキストファイルに記述でき、その構成を自動生成することができます。「Infrastructure as Code(インフラのコード化)を実践するプラットフォームとして利用できます。
ITキーワードとして「Immutable Infrastructure(不変のインフラ構成)」というものがあります。アプリ実行環境を一度限りの使い捨てとして、環境を何度も作り直すことによって構成変更を行い、アプリの実行環境をより管理しやすくしていく考え方です。
Dockerのイメージ自体は起動されても更新は保存されません。明示的な保存(コミット)をしなければコンテナ破棄時に変更分が消えてしまいます。Dockerではこの仕様を、AUFSというファイルシステムを利用して実現しています。
Dockerには、「Immutable Infrastructure」を実現するために必要な機能がそろっているため、実際の環境に適用できます。
Dockerには、新しい独自技術は、ほとんど使われていません。コンテナ管理に必要となる既存のOSSを組み合わせて、コマンドライン/REST APIで効率良くコンテナ管理ができるようになっている点が、広く支持され、注目されている理由となっています。
サイバーセキュリティ企業「RedCode Labs」はオープンソースツール「EasyWSL」をリリースした。 「easyWSL」とは 事実上すべての「LinuxディストリビューションDockerイメージ」を「Windows Subsystem for Linux(WSL)」で起動するように変換できるツール。...
OSS×Cloud ACCESS RANKING