DockerはDocker, Inc.が開発したサービスとしてのプラットフォーム(PaaS)で、ユーザーはあらゆる環境向けにアプリケーションをすばやく構築、テスト、デプロイできる。反復的で単調な設定作業をなくし、開発をより効率的、スケーラブルかつ予測可能にする。
DockerはOSレベルの仮想化を利用し、ソフトウェアをコンテナと呼ばれる標準化された単位のパッケージとして提供する。コンテナをホストするソフトウェアはDocker Engineと呼ばれる。Dockerコンテナには、システムツール、コード、ライブラリ、ランタイムなど、ソフトウェアの実行に必要なすべてが含まれる。そのためDockerは広く受け入れられており、さまざまな種類の企業やチームがサービスを利用している。
Dockerの全体像とコンテナ化分野における位置づけについては、以下を参照されたい。
Dockerのレビュー
Dockerとコンテナオーケストレーション市場
コンテナオーケストレーション市場は急速に成長しており、数年以内に10億ドル規模に達すると見込まれている。世界のコンテナオーケストレーション市場規模は2021年に4億5,400万ドルで、2027年には17億8,000万ドルに達し、2022年から2027年にかけて年平均成長率(CAGR)16.62%を記録すると予測されている。
Dockerはコンテナオーケストレーション市場のリーダーであり、市場シェアは82.58%に達する。そのため、ユーザーによる最新アプリケーションの構築、共有、実行を促進している。1,300万人を超える開発者が、700万を超えるアプリケーションでDockerを利用し、毎月のイメージダウンロード数は130億を超える。スケーラビリティ、パフォーマンス、セキュリティを背景に、Dockerの需要は急速に高まっている。
Dockerの機能
Dockerは豊富な機能を備えたソフトウェアプラットフォームだ。包括的なエンドツーエンドのプラットフォームには、アプリケーションの提供ライフサイクル全体で連携して動作するよう設計されたアプリケーション・プログラミング・インターフェース(API)、コマンドラインインターフェース(CLI)、ユーザーインターフェース(UI)、セキュリティ機能が含まれる。Dockerの主な機能とメリットを以下に示す。
セキュリティとランタイム
セキュリティは重要な課題だ。Dockerでは、開発者の生産性を損なわずにアプリケーションのセキュリティを高める、シンプルながら強力なツールにより、ソフトウェアサプライチェーン全体でアプリケーションを安全に構築、共有、実行できる。
Dockerは業界をリードするコンテナランタイムを提供する。Docker EngineはさまざまなLinuxおよびWindows Serverのオペレーティングシステム上で動作し、コンテナ化されたアプリケーションを、どのインフラ上でも一貫して場所を問わず実行できる。
開発者ツール
Dockerの開発者ツールはDocker CLIプラグインのセットであり、クラウド対応のコンテナ化アプリケーションやマイクロサービスを安全に構築、テスト、共有する最速の方法を提供する。これらのツールはDockerをユーザーの開発環境に統合し、通常のコード作成・ビルド・テストのサイクルを強化する。
さらに、Docker Engine、Compose、その他の中核Docker APIの拡張機能により、コラボレーションが強化され、Docker Apps、イメージ、レジストリの管理プロセスが簡素化される。Compose V2は、複数コンテナアプリケーションの日々のローカル開発、ビルド、実行、開発サイクルを高速化し、開発環境から本番環境への容易な切り替えを実現する。
Docker Hub
Docker Hubは、ユーザーがチームとコンテナイメージを検索・共有できるホステッドリポジトリサービスだ。主な機能には、プライベートリポジトリ、自動ビルド、チームと組織、公式イメージ、パブリッシャーイメージ、Webhooksがある。
Docker Hubは世界最大のコンテナイメージコミュニティであり、コンテナコミュニティの開発者、オープンソースプロジェクト、独立系ソフトウェアベンダー(ISV)が集う中心的な場となっている。プレミアムイメージと検証済みイメージにより、ユーザーは適切なコンテナを選択できる。また、Snykによる組み込みスキャンによって、Hubのイメージセキュリティはさらに向上した。
Dockerの差別化要因
Docker Extensions
Docker Extensionsは、さまざまな開発者ツールを直接統合し、Docker Desktopの機能を強化する。お気に入りの開発ツールをユーザーのアプリケーション開発・デプロイワークフローにシームレスに接続し、デバッグ、テスト、セキュリティ、ネットワーク機能によってDocker Desktopを拡張する。
また、Docker ExtensionsのSDKを使えば、カスタムDocker Desktop機能を簡単に作成し、さまざまなツールを開発ワークフローに追加して可能性を探ることができる。作成したExtensionsはDockerのコミュニティ全体で共有でき、貢献者、グループ、組織が幅広いソリューションを活用できる。
Dockerのロードマップ
Dockerはユーザーのフィードバックを得るため、本番導入計画を早い段階から頻繁に顧客と共有している。ロードマップは、Dockerが注力すべき適切なプロジェクトの特定に役立ち、顧客が早期に意思決定できるようにする。ライブフィードバックセッションでは、ユーザーから意見を得るため、開発中の機能やアイデアを示したり、ユーザーがDockerをどう利用しているかを詳しく尋ね、問題点を探ったりすることも多い。
Dockerのパートナー
Dockerは開発ライフサイクルから複雑さや煩雑な作業を取り除き、開発者がイノベーションにより多くの時間を割けるよう取り組んでいる。ユーザーがDocker Hubを通じてソフトウェアを一般公開する場合、Docker Verified Publisher(DVP)プログラムによってイメージを検証し、信頼できるコンテンツとして表示できる。
さらにDockerは、Amazon Web Services(AWS)、JFrog、Microsoft Azure、Snyk、Nuawareなど、著名なアライアンスパートナーのポートフォリオを獲得している。
Dockerのユースケース
Dockerは、あらゆる規模の組織において、さまざまなユーザー向けにコンテナオーケストレーションを提供する、広く利用されているソフトウェアプラットフォームだ。
「私たちはプロジェクト用のイメージの作成と、Kubernetesを使ったそのイメージのデプロイにDockerを利用しています。イメージを正常に作成できれば、他の開発者が各自のシステムでエラーに遭遇することがないため、とても役立ちます。この手順をJenkinsのビルドに追加し、抜け漏れがないようにしています。」―SaltPharmaceuticals、シニアソフトウェアエンジニア、Abhishek Raj
「私たちの会社では、同じコードベースに携わる開発者間で環境の一貫性を保つためにDockerを使っています。Dockerのおかげでモジュールを簡単に管理し、マシン間の計算パフォーマンスを比較できます。コードベースが拡大し、開発者が増え、特に顧客も参加するようになるにつれて、これはますます重要になっています。」―Very、シニアデータサイエンティスト、Lindsay Veazey
「私たちはすべてのイメージの構築とデプロイにDockerを使っています。また、すべてのイメージをレジストリでホストするためにもDockerを使っています。これは全社で利用されており、異なるチームが簡単にイメージをプルしたりプッシュしたりできます。」―Sky、DevOpsエンジニア、Nini Olo
Dockerのユーザーレビュー
Dockerは、複数のユーザーレビューサイトでおおむね肯定的な評価と推奨を得ている。G2のレビューによると、ユーザーによるDockerの評価は5点満点中4.6点、TrustRadiusでは10点満点中9点だ。
Gartner Peer Insightsによると、ユーザーのDockerに対する評価は5点満点中4.6点で、推奨率は96%。その他の顧客体験評価は次のとおりだ。
- 評価と契約:5点満点中4.3点
- 統合とデプロイ:5点満点中4.6点
- サービスとサポート:5点満点中4.4点
- 製品機能:5点満点中4.5点
Dockerの料金
Dockerは4種類の料金・サブスクリプションモデルを提供している。Personal、Pro、Team、Businessの4種類だ。
Personalモデルは無料で利用でき、個人開発者、教育機関、オープンソースコミュニティ、小規模企業に適している。主な機能には、Docker Desktop、無制限のパブリックリポジトリ、Docker EngineとKubernetes、6時間あたり200回のイメージプル、無制限のスコープ付きトークンが含まれる。
Proモデルの料金は月額5ドルからで、個人開発者の生産性を高めるプロ向けツールが含まれる。主な機能には、Docker Desktop、無制限のプライベートリポジトリ、1日5,000回のイメージプル、同時ビルド5件、Hubの脆弱性スキャン300件が含まれる。
Teamモデルの料金は、ユーザー1人あたり月額7ドル、5ユーザーあたり25ドルから。チーム向けに、コラボレーション、生産性、セキュリティの機能を提供する。主な機能には、Proの全機能に加え、無制限のチーム、同時ビルド15件、無制限のイメージスキャン、ロールベースアクセス制御、監査ログが含まれる。
Businessモデルの料金はユーザー1人あたり月額21ドルからで、集中管理と高度なセキュリティ機能を必要とする中規模・大規模企業に適している。主な機能には、Teamの全機能に加え、集中管理、レジストリアクセス管理、イメージアクセス管理、シングルサインオン(SSO)が含まれる。
結論
市場のリーダーであるDockerは、コンテナオーケストレーションプラットフォーム向けのサービスプロバイダーとして広く受け入れられている。適切なコンテナオーケストレーションサービスは、機能を強化して企業のビジネス目標達成を支援する。適切なコンテナオーケストレーションプロバイダーを探す際は、自社に必要な機能の種類と、そのために支払いたい金額を理解しておくべきだ。
Dockerは使いやすく、高いセキュリティ、低い運用コスト、卓越したパフォーマンスを提供する。便利なツールを備え、大規模な開発チームでも機能するコンテナ化アプリケーションを簡単にデプロイできる。初心者にも理解しやすく、セキュリティ上の問題はクラウドサービスによって解決できる。総合的に見て、Dockerは企業利用にも個人利用にも適したコンテナ化の選択肢となり得る。