- Dockerの基本概念と仮想マシン(VM)との根本的な違い
- Docker Desktop の料金体系(2024年11月改定版)と企業利用の注意点
- Rocky Linux / Ubuntu / Windows でのインストール手順と動作確認方法
「Dockerって最近よく聞くけど、結局VMと何が違うの?」──VMware ESXi や Hyper-V でサーバーを管理してきたインフラエンジニアの方なら、一度はそう思ったことがあるのではないでしょうか。
この記事では、VM管理者の視点を軸に、Dockerの基礎概念からインストール、料金体系、代替ツールまでを一気通貫で解説します。「連載第1回」として、まずはDockerの全体像をしっかり掴んでいきましょう。
Dockerとは?コンテナ型仮想化を1分で理解する
Docker(ドッカー)とは、アプリケーションを「コンテナ」と呼ばれる軽量な仮想環境に閉じ込めて実行するためのプラットフォームです。2013年にDocker社(旧dotCloud社)がオープンソースとして公開し、現在ではコンテナ技術のデファクトスタンダードとなっています。
仮想マシン(VM)との根本的な違い
VMware ESXi や Hyper-V に慣れている方にとって、最も重要な違いは「ゲストOSの有無」です。
仮想マシンでは、ハイパーバイザーの上にゲストOS(Windows Server、Linuxなど)を丸ごとインストールします。各VMがカーネルを含む完全なOSを持つため、リソース消費が大きくなります。
一方、Dockerコンテナはホストマシンのカーネルを共有します。コンテナにはアプリケーションとその依存ライブラリだけが入り、ゲストOSは存在しません。これが「軽量・高速」の源です。
| 比較項目 | 仮想マシン(VM) | Dockerコンテナ |
|---|---|---|
| カーネル | ゲストOS固有 | ホストOSと共有 |
| 起動時間 | 数十秒〜数分 | 数秒以内 |
| ディスクサイズ | 数GB〜数十GB | 数十MB〜数百MB |
| 分離レベル | 強い(ハードウェアレベル) | 中程度(プロセスレベル) |
| 代表的なツール | VMware ESXi / Hyper-V / KVM | Docker Engine / Podman |
Dockerの主要コンポーネント(Engine・Hub・Compose)
Dockerのエコシステムは複数のコンポーネントで構成されています。まずは以下の3つを押さえておきましょう。
- Docker Engine:コンテナの作成・実行を担うコアランタイム。Linux上で直接動作します。
- Docker Hub:コンテナイメージの公開レジストリ。nginxやMySQLなど公式イメージが多数公開されています。
- Docker Compose:複数コンテナの構成をYAMLファイルで定義し、一括管理するツール。Webサーバー+DB+キャッシュのような構成を1コマンドで起動できます。
VM管理者がDockerを使い始めて最初に戸惑うこと
VMware や Hyper-V で仮想マシンを管理してきた方がDockerに触れると、思想の違いに戸惑うポイントがいくつかあります。最初に混乱しやすい3つの点を紹介します。
「1コンテナ1プロセス」の考え方
VMでは1つの仮想マシン上にWebサーバー、DBサーバー、監視エージェントなどを同居させることが当たり前です。しかしDockerでは「1コンテナに1つのプロセス(役割)」が原則です。
Webサーバーはnginxコンテナ、データベースはMySQLコンテナ、というように役割ごとにコンテナを分けます。複数コンテナの連携にはDocker Composeを使います。
VMでの「1台のサーバーに色々入れる」発想を捨てて、「レゴブロックのように機能を組み合わせる」発想に切り替えることが、Docker理解の第一歩です。
コンテナを削除するとデータが消える
VMでは仮想ディスク(.vmdk や .vhdx)にデータが永続化されるため、VMを停止・再起動してもデータは残ります。
一方、Dockerコンテナは「使い捨て」が前提です。コンテナを削除すると、コンテナ内のファイル変更はすべて失われます。永続化が必要なデータは「ボリューム(Volume)」や「バインドマウント」という仕組みでホスト側に保存する必要があります。
Dockerを始めたばかりの頃に最も多い失敗が「コンテナを消したらDBのデータが全部消えた」というものです。必ずボリュームの設計を先に行いましょう。
ネットワーク設計はVMと別物
VMware であれば vSwitch や VLAN でネットワークを設計しますが、Dockerのネットワークはソフトウェア的に抽象化されています。
デフォルトでは「bridge」ネットワークが作成され、コンテナ同士はこのブリッジ経由で通信します。Docker Composeでサービスを定義すると、サービス名でDNS解決が可能になるため、IPアドレスを意識する場面はVMより少なくなります。
Dockerを使う4つのメリット
環境の再現性:「自分のPCでは動く」を終わりにする
開発環境と本番環境の差異は、システム障害の原因として非常に多いものです。Dockerイメージにはアプリケーション、ライブラリ、設定ファイルがすべてパッケージされるため、「どの環境でも同じように動く」ことが保証されます。
軽量・高速起動:VMの数分からコンテナの数秒へ
VMの起動にはOSのブートプロセスが必要で、早くても30秒〜数分かかります。Dockerコンテナはプロセスの起動に過ぎないため、通常は1〜3秒で起動が完了します。
この高速性は、CI/CDパイプラインでのテスト実行や、オートスケーリングの即応性に直結します。
ポータビリティ:開発→テスト→本番を同一イメージで
一度ビルドしたDockerイメージは、開発者のPC、テストサーバー、本番のKubernetesクラスタのどこでも同じように実行できます。「開発環境では動いたのに本番でエラーになる」というリスクを大幅に減らせます。
インフラのコード化:Dockerfileで構築手順を記述・共有
VMの構築手順は、手順書(Excel等)や構成管理ツール(Ansible等)で管理することが一般的です。Dockerでは「Dockerfile」というテキストファイルに構築手順を記述します。
FROM rockylinux:9
RUN dnf install -y httpd
COPY ./html/ /var/www/html/
EXPOSE 80
CMD ["httpd", "-D", "FOREGROUND"]この5行だけで「Rocky Linux 9にApacheをインストールし、HTMLファイルを配置してポート80で公開する」という環境が定義できます。Gitで管理すれば変更履歴の追跡も容易です。
Docker Desktop の料金と企業利用の注意点(2024年改定版)
Docker Desktop は、WindowsやmacOSでDockerを手軽に使えるGUIアプリケーションです。個人利用や学習目的では非常に便利ですが、企業利用には注意が必要です。
無料で使える条件
Docker Desktop は以下の条件をすべて満たす場合に無料(Docker Personal プラン)で利用できます。
- 個人利用・学習目的・教育目的
- 非商用のオープンソースプロジェクト
- 従業員250人未満かつ年間収益1,000万ドル(約15億円)未満の企業
従業員250人以上または年間収益1,000万ドル以上の企業でDocker Desktopを使う場合、有料サブスクリプション(Pro / Team / Business)の契約が必須です。条件はDocker社のポリシー変更によって変わる場合があるため、最新のライセンス条項を必ずご確認ください。
有料プランの内容(2024年11月改定後)
2024年11月のプラン改定で、Dockerの有料プランは値上げと機能強化が行われました。2024年12月10日以降の新規契約、既存ユーザーは次回更新日から新料金が適用されています。
| プラン | 年払い(月換算) | 月払い | 主な特徴 |
|---|---|---|---|
| Personal | 無料 | 無料 | Docker Hub プル上限:200回/6時間(認証済み)、プライベートリポジトリ1つ |
| Pro | $9/月 | $11/月 | プライベートリポジトリ無制限、Build Cloud 200分/月、2営業日サポート |
| Team | $15/ユーザー/月 | $16/ユーザー/月 | RBAC・監査ログ、Build Cloud 500分/月、最大100ユーザー |
| Business | $24/ユーザー/月 | $24/ユーザー/月 | SSO/SCIM、Build Cloud 1,500分/月、翌営業日サポート、請求書払い対応(年払い割引なし) |
Linuxサーバーで利用する場合は、Docker Desktop は不要です。Docker Engine(無料・OSS)を直接インストールすれば、ライセンス料金の心配はありません。Docker Desktopの有料化はあくまでWindows / macOSのGUIアプリケーションに関する話です。
企業向け代替ツール比較(Podman / Rancher Desktop / OrbStack)
Docker Desktop の有料化を受けて、代替ツールへの関心が高まっています。主要な選択肢を比較します。
| ツール | 対応OS | 費用 | Docker互換性 | 特徴 |
|---|---|---|---|---|
| Podman Desktop | Win / Mac / Linux | 無料(OSS) | 高い(Docker CLI互換) | デーモンレス・ルートレス対応。Red Hat/OpenShift環境との親和性が高い |
| Rancher Desktop | Win / Mac / Linux | 無料(OSS) | 高い(dockerd選択可) | ローカルKubernetes(k3s)を統合。マルチOS対応チーム向き |
| OrbStack | macOSのみ | 個人無料 / 商用有料 | 非常に高い | 起動が極めて高速。メモリ消費が少ない。macOS限定 |
インストールと動作確認
ここからは実際にDockerをインストールしてみましょう。本記事ではRocky Linux 9、Ubuntu 24.04、Windows(Docker Desktop)の3パターンを紹介します。
Linux(Rocky Linux 9)へのインストール
Rocky Linux 9(AlmaLinux 9でも同様の手順)にDocker Engineをインストールする方法です。
sudo dnf update -y
sudo dnf install -y dnf-utilssudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repoRocky Linux 9にはPodmanやBuildahがプリインストールされている場合があります。Docker Engineと競合するため、先に削除します。
sudo dnf remove -y podman buildah以下のパッケージをインストールします。
docker-ce:Docker Engineの本体docker-ce-cli:dockerコマンドのCLIツールcontainerd.io:コンテナランタイム(Docker Engineの土台となるソフトウェア)docker-buildx-plugin:マルチプラットフォームイメージのビルド拡張機能docker-compose-plugin:docker composeコマンドを使えるようにするプラグイン
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo systemctl start docker
sudo systemctl enable dockersudo usermod -aG docker $USER
newgrp dockerLinux(Ubuntu 24.04)へのインストール
Ubuntu 24.04 LTS の場合は以下の手順です。
# 前提パッケージのインストール
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
# Docker公式GPGキーの追加
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# リポジトリの追加
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker Engineのインストール
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 一般ユーザーで使えるようにする
sudo usermod -aG docker $USERWindowsへのインストール(Docker Desktop)
Windows 10/11 Pro 以上であれば、Docker Desktop を使うのが最も手軽です。
WSL 2とはWindows上でLinux環境を動かす仕組みです。PowerShellを管理者権限で開き、以下を実行します。
wsl --install再起動後、WSL 2 が有効になります。
Docker公式サイト(https://www.docker.com/products/docker-desktop/)からインストーラーをダウンロードし、画面の指示に従ってインストールします。
初回起動時に「WSL 2 バックエンド」を使用するか聞かれます。特別な理由がなければWSL 2を選択してください。Hyper-VバックエンドよりWSL 2のほうが軽量かつ高速です。
動作確認コマンド
どのOSでもインストール後の動作確認は同じコマンドです。
# Dockerのバージョン確認
docker --version
# Docker Engineの詳細情報
docker info
# テストコンテナの実行(Linux では sudo が不要になっているか確認)
docker run hello-worlddocker run hello-world を実行すると、Docker Hub から hello-world イメージが自動ダウンロードされ、以下のようなメッセージが表示されます。
Hello from Docker!
This message shows that your installation appears to be working correctly.
...基礎用語を整理する
Dockerを学ぶ上で避けて通れない基礎用語を、VM管理者に馴染みのある例えと一緒に整理します。
| Docker用語 | VMでの例え | 説明 |
|---|---|---|
| イメージ(Image) | VMテンプレート / ISO | コンテナの設計図。読み取り専用で、レイヤー構造を持つ |
| コンテナ(Container) | 起動中のVM | イメージから生成された実行中のインスタンス。停止・削除が自由 |
| ボリューム(Volume) | 外付けディスク / データストア | コンテナのライフサイクルに依存しない永続データ領域 |
| Dockerfile | 構築手順書 / Kickstart | イメージの作り方をテキストで記述するファイル |
| Docker Compose | 複数VMの一括デプロイスクリプト | 複数コンテナの構成をYAMLで定義し一括管理するツール |
| レジストリ(Registry) | ISOイメージ置き場 | イメージの保管・配布場所。Docker Hubが代表的 |
特に重要なのは「イメージ」と「コンテナ」の関係です。イメージはクラスの定義、コンテナはそのインスタンスと捉えると理解しやすいでしょう。1つのイメージから何個でもコンテナを起動できます。
まとめ:インフラエンジニアがDockerを学ぶべき理由
- DockerはゲストOSを持たない軽量なコンテナ型仮想化であり、VMとは設計思想が異なる
- VM管理者が戸惑いやすいのは「1コンテナ1プロセス」「データの揮発性」「ネットワークの抽象化」の3点
- 環境の再現性・高速起動・ポータビリティ・インフラのコード化が4大メリット
- Docker Desktop は大企業(250人以上 or 年収益$10M以上)の商用利用は有料。Linux上のDocker Engineは無料
- 代替ツールとしてPodman Desktop / Rancher Desktop / OrbStack がある
クラウドネイティブな開発・運用が主流となりつつある現在、Dockerの知識はインフラエンジニアにとって必須スキルになっています。VMwareで培った「リソース管理」「ネットワーク設計」「セキュリティ対策」の知識は、コンテナ環境でも十分に活かせます。
VMとDockerは「対立するもの」ではなく「使い分けるもの」です。それぞれの特性を理解し、適材適所で選択できるエンジニアが今後ますます求められます。
次のステップ(第2回予告)
第2回では「Dockerイメージとコンテナの操作」を取り上げます。docker run / docker build / docker compose up など、日常的に使うコマンドをハンズオン形式で解説します。
- DockerとVMはどちらを使うべきですか?
用途によります。マイクロサービスやCI/CDにはDockerが適しており、WindowsアプリケーションやカーネルレベルのOS検証にはVMが適しています。多くの現場では両方を併用しています。
- Docker Desktop の料金を回避する方法はありますか?
Linuxサーバー上でDocker Engineを使う場合は完全無料です。WindowsやmacOSの場合はPodman DesktopやRancher Desktopなどの無料代替ツールを検討してください。
- Rocky Linux 9でDockerをインストールする際、Podmanとの競合は大丈夫ですか?
Rocky Linux 9にはPodmanがプリインストールされている場合があります。本記事ではDocker Engineのインストール前にPodman/Buildahを先に削除する手順を紹介しています。Podmanをそのまま使い続けたい場合は、Docker Engineのインストールを省略してPodmanを活用する選択肢もあります。

コメント