この用語をシェア
概要・定義
Dockerは、アプリケーションをコンテナとしてパッケージ化し、どこでも実行できるようにするコンテナ仮想化プラットフォームです。2013年にDotCloud社(現在のDocker, Inc.)によって公開され、現在ではコンテナ仮想化のデファクトスタンダードとなっています。
Dockerは、アプリケーションとその依存関係を独立したコンテナとしてパッケージ化し、「ビルド、シップ、ラン」というコンセプトで、環境の独立性、ポータビリティ、スケーラビリティを実現します。
主要な特徴・利点
1. 環境の独立性
アプリケーションとその依存関係をコンテナに含め、ホスト環境に依存しない実行を実現します。
2. ポータビリティ
一度ビルドしたアプリケーションを、開発環境から本番環境まで、一貫して同じように実行できます。
3. 軽量性
仮想マシンと比較して、リソース消費が少なく、起動が高速です。
4. スケーラビリティ
コンテナのレプリケーションとスケールアウトが容易で、マイクロサービスアーキテクチャに適しています。
主要コンポーネント
1. Docker Engine
Dockerのコアコンポーネントで、コンテナの作成、実行、管理を行います。
2. Docker Image
アプリケーションとその依存関係を含む読み取り専用のテンプレートです。
3. Docker Container
Docker Imageから作成された実行可能なインスタンスです。
4. Dockerfile
Docker Imageを作成するためのスクリプトファイルです。
5. Docker Registry
Docker Imageを保存、共有するためのリポジトリサービスです。
使用例・実装方法
基本的なDockerコマンド
# コンテナの実行
docker run hello-world
# インタラクティブモードでコンテナ実行
docker run -it ubuntu:latest /bin/bash
# バックグラウンドでコンテナ実行
docker run -d nginx:latest
# ポートマッピングでコンテナ実行
docker run -d -p 8080:80 nginx:latest
最新動向(2025-2026年)
Dockerは2025年現在も開発環境の標準ツールとして広く使われており、コンテナエコシステム全体が成熟・進化しています。
- Docker Desktop 4.x系の進化 - WSL2(Windows)、macOS Apple Siliconのネイティブサポートが改善。Dev Containersとの統合により、チーム全体での開発環境統一が容易に
- Docker BuildKit(Bake)の普及 - マルチプラットフォームビルド(x86/ARM)のサポートが強化され、Apple SiliconとAWS Gravitonの両方に対応したイメージを1コマンドでビルド可能
- OCI(Open Container Initiative)標準化 - コンテナランタイムの標準化が進み、containerd(Docker内部で使用)やPodmanなどの代替ランタイムとの相互運用性が向上
- AIワークロードへの対応 - NVIDIA Container ToolkitによるGPUアクセラレーションが成熟。Dockerコンテナ内でCUDAを使ったAI/ML処理が容易に
- Docker Businessプラン強化 - セキュリティスキャン(Scout)機能が強化。コンテナイメージの脆弱性管理がCI/CDパイプラインに統合しやすくなった
よくある質問(FAQ)
Q. DockerとVMの違いは何ですか?
仮想マシン(VM)はハイパーバイザー上でゲストOSを含む完全な仮想環境を実行します。一方、DockerコンテナはホストOSのカーネルを共有しながら、プロセス空間とファイルシステムを分離します。その結果、コンテナはVMより起動が数秒〜数十倍速く、リソース消費が少ないです。VMは完全な隔離が必要なセキュリティ要件に向いており、コンテナはマイクロサービスやCI/CD環境の効率化に向いています。
Q. DockerとKubernetesの関係は?
DockerはコンテナのビルドとローカルでのRunが中心のツールです。Kubernetes(K8s)はコンテナを本番環境で大規模に運用するためのオーケストレーションプラットフォームです。Dockerでイメージを作成し、それをKubernetesで複数のサーバーに分散配置して管理するという使い分けが一般的です。小規模なら「Docker Compose」で複数コンテナを管理し、大規模になったらKubernetesに移行するケースが多いです。
Q. Dockerは無料で使えますか?
Docker Engineはオープンソースで無料です。Docker Desktop(Windows/Mac向けのGUIアプリ)は、個人や小規模チーム(従業員250人未満かつ売上1,000万ドル未満)は無料で利用できますが、企業での商用利用では有料のサブスクリプション(Docker Business等)が必要になる場合があります(2022年の利用規約変更以降)。Linuxでは引き続きDockerを無料で使用できます。
