「VPSを契約したけれど、Dockerの導入方法がわからない」「Docker環境をVPS上に構築して開発や運用を効率化したい」——そんな悩みを持つ方は少なくありません。
Dockerは、アプリケーションをコンテナという単位で管理・実行できる技術で、サーバー環境の構築・移行・再現を大幅に効率化できるツールとして広く普及しています。特にVPS上でDockerを使えるようになると、WordPressやデータベース、開発環境などを手軽に立ち上げられるようになります。
この記事では、VPSにDockerをインストールして基本的な環境構築を行うまでの手順を、初心者の方にもわかりやすくステップバイステップで解説します。なお、料金やスペックに関する情報は2026年4月時点の各社公式情報に基づいています。最新情報は必ず公式サイトでご確認ください。
そもそもDockerとは?VPSで使うメリットを理解しよう
Dockerとは、コンテナ型の仮想化技術を用いてアプリケーションの実行環境をパッケージ化するオープンソースのプラットフォームです。従来の仮想マシン(VM)と比較して、以下のような特徴があります。
Dockerの基本的な仕組み
Dockerでは「イメージ」と呼ばれるテンプレートからコンテナを作成し、その中でアプリケーションを動かします。イメージにはOS・ミドルウェア・アプリケーションの設定がすべて含まれているため、どの環境でも同じ構成で動作させることが可能です。
- イメージ:コンテナの設計図。Docker Hubなどのレジストリから取得できる
- コンテナ:イメージから生成される実行環境。起動・停止・削除が数秒で行える
- Dockerfile:イメージの構成を記述する設定ファイル
- Docker Compose:複数コンテナの構成をYAMLファイルで一括管理するツール
VPSでDockerを使うメリット
- 環境の再現性:同じDockerイメージを使えば、開発環境と本番環境の差異をなくせる
- 構築の効率化:ミドルウェアのインストール・設定をコード化できるため、何度でも同じ環境を短時間で再構築できる
- リソースの効率利用:VMと異なりゲストOSが不要なため、VPSの限られたリソースを効率的に使える
- 移行の容易さ:VPSの乗り換え時にもDockerイメージごと移行できるため、再セットアップの手間が大幅に減る
VPSでDockerを使うデメリット・注意点
- 学習コストがある:Linuxコマンドの基礎知識に加えて、Docker特有の概念を理解する必要がある
- メモリ消費:Docker Engine自体がメモリを消費するため、メモリ1GB未満のプランでは動作が不安定になることがある
- セキュリティ管理:コンテナのネットワーク設定やボリュームの権限管理を正しく行わないと、意図しないポートが公開されるリスクがある
- 永続データの管理:コンテナは使い捨てが前提の設計であるため、データの永続化にはボリュームの設定が必須となる
Docker環境構築に適したVPSの選び方とスペック目安
Dockerを快適に動かすためには、VPSのスペック選びが重要です。一般的に推奨されるスペックの目安を以下にまとめます。
用途別の推奨スペック
| 用途 | CPU | メモリ | ストレージ | 月額目安 |
|---|---|---|---|---|
| 学習・検証用(コンテナ1〜2個) | 1〜2コア | 1〜2GB | 30GB以上 | 500〜1,000円程度 |
| 個人開発・小規模サイト運用 | 2〜3コア | 2〜4GB | 50GB以上 | 1,000〜2,000円程度 |
| 複数サービスの同時運用 | 4コア以上 | 4〜8GB | 100GB以上 | 2,000〜5,000円程度 |
※月額料金はVPS各社の2026年4月時点の公式価格帯を参考にした目安です。プロバイダやキャンペーン状況によって異なりますので、必ず各社公式サイトでご確認ください。
VPS選びで確認すべきポイント
- OSテンプレートの対応状況:Ubuntu 22.04/24.04やDebian 12など、Docker公式がサポートするOSが選択できるか
- root権限の有無:Dockerのインストールにはroot権限が必要。一般的なVPSでは付与されるが、マネージドサービスでは制限されている場合がある
- ネットワーク帯域:Dockerイメージのダウンロードやサービス公開時に十分な帯域があるか
- スケールアップの柔軟性:コンテナの追加に伴いリソースが不足した際、上位プランへ変更しやすいか
【ステップバイステップ】VPSにDockerをインストールする手順
ここからは、Ubuntu(22.04または24.04)がインストールされたVPSにDockerをセットアップする具体的な手順を解説します。この手順はDocker公式ドキュメントに基づいています。
ステップ1:VPSにSSHで接続する
まず、ターミナル(Windowsの場合はPowerShellやWindows Terminal)からVPSにSSH接続します。
ssh root@あなたのVPSのIPアドレス
初回接続時はフィンガープリントの確認が求められます。「yes」と入力して接続を許可してください。セキュリティの観点から、接続後にSSH鍵認証への切り替えとパスワード認証の無効化を行うことが一般的に推奨されています。
ステップ2:システムを最新の状態に更新する
apt update && apt upgrade -y
パッケージの更新を行い、OSを最新の状態にします。セキュリティパッチの適用も兼ねているため、Dockerインストール前に実施しておきましょう。
ステップ3:必要なパッケージをインストールする
apt install -y ca-certificates curl gnupg
Docker公式リポジトリの追加に必要な基本パッケージをインストールします。
ステップ4:Docker公式のGPGキーとリポジトリを追加する
# GPGキーの追加
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
# リポジトリの追加
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo ${VERSION_CODENAME}) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker公式リポジトリを登録することで、常に最新の安定版Dockerをインストール・更新できるようになります。
ステップ5:Docker Engine をインストールする
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
これにより、Docker本体に加えてDocker Compose(V2)やBuildxプラグインも一緒にインストールされます。
ステップ6:インストールの確認
# Dockerのバージョン確認
docker --version
# テスト用コンテナの実行
docker run hello-world
「Hello from Docker!」というメッセージが表示されれば、Dockerのインストールは正常に完了しています。
ステップ7:Docker Composeの動作確認
docker compose version
Docker Compose V2はDockerのサブコマンドとして統合されているため、docker compose(ハイフンなし)で実行します。旧バージョンのdocker-compose(ハイフンあり)とは異なるので注意してください。
Docker Composeで実際にサービスを立ち上げてみよう
Dockerのインストールが完了したら、Docker Composeを使って実際にWebサービスを立ち上げてみましょう。ここでは例として、Nginxのコンテナを起動する手順を紹介します。
Nginxコンテナの起動例
まず、作業用のディレクトリを作成し、Docker Composeの設定ファイルを作成します。
mkdir -p ~/docker-test && cd ~/docker-test
以下の内容でcompose.yamlファイルを作成します。
# compose.yaml
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
HTMLファイルを配置して起動します。
mkdir html
echo '<h1>Docker on VPS - Test Page</h1>' > html/index.html
docker compose up -d
ブラウザでhttp://あなたのVPSのIPアドレスにアクセスし、テストページが表示されれば成功です。
WordPress + MySQL の構成例
より実用的な例として、WordPressとMySQLをDocker Composeで構築する設定も紹介します。
# compose.yaml
services:
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: your_wp_password
restart: unless-stopped
wordpress:
image: wordpress:latest
depends_on:
- db
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: your_wp_password
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
restart: unless-stopped
volumes:
db_data:
wp_data:
注意:上記のyour_root_passwordやyour_wp_passwordは必ず強固なパスワードに変更してください。本番運用では、パスワードを.envファイルに分離し、.envファイルのパーミッションを適切に設定することが推奨されます。
基本的なDockerコマンド一覧
| コマンド | 説明 |
|---|---|
docker compose up -d |
バックグラウンドでコンテナを起動 |
docker compose down |
コンテナを停止・削除 |
docker compose ps |
稼働中のコンテナ一覧を表示 |
docker compose logs -f |
ログをリアルタイムで表示 |
docker compose pull |
イメージを最新版に更新 |
docker system prune |
不要なイメージ・コンテナを一括削除 |
VPS上のDocker環境で押さえておくべきセキュリティ対策
VPSでDockerを運用する際には、セキュリティ面の配慮が不可欠です。初心者が見落としがちなポイントを整理します。
ファイアウォールの設定に注意
Dockerはデフォルトでiptablesのルールを自動的に書き換えるため、UFW(Uncomplicated Firewall)で設定したルールがDockerによってバイパスされるケースがあります。これはDocker利用時によく知られている注意点です。
対策としては、/etc/docker/daemon.jsonに以下を追記してDockerのiptables操作を制限する方法があります。
{
"iptables": false
}
ただし、この設定を行うとDockerのネットワーク機能に影響が出る場合があるため、Docker公式ドキュメントを確認した上で適用してください。
その他のセキュリティ上の推奨事項
- 不要なポートを公開しない:
portsの指定では127.0.0.1:ポート番号:コンテナポートのようにバインドアドレスを限定し、外部からの直接アクセスをリバースプロキシ経由に限定する - rootユーザーでのコンテナ実行を避ける:Dockerfile内で一般ユーザーを指定するか、
userオプションを使用する - イメージの取得元を確認する:Docker Hubでは公式イメージ(Docker Official Image)や認証済みパブリッシャーのイメージを優先して使用する
- 定期的なイメージ更新:
docker compose pullで定期的にイメージを更新し、セキュリティパッチを適用する - SSH鍵認証の設定:VPS自体へのアクセスはパスワード認証ではなく鍵認証に切り替える
こんな人にVPS×Docker環境はおすすめ——ユースケース別ガイド
VPS上のDocker環境がどのようなユーザーに向いているか、具体的なユースケースごとに整理します。
向いている人
- プログラミング学習中の方:ローカルPCの環境を汚さずに、言語やフレームワークの学習環境をコンテナで手軽に作れる。不要になったらコンテナごと削除すれば元通り
- 個人開発でWebサービスを公開したい方:フロントエンド・バックエンド・データベースをDocker Composeで一括管理できるため、構成管理が楽になる
- ポートフォリオ用のサーバーが必要なエンジニア:複数のプロジェクトを1台のVPSで同時に動かせるため、コスト効率が良い
- ゲームサーバーや個人向けサービスを運用したい方:Docker Hub上に公開されている公式・コミュニティイメージを利用して、短時間でサーバーを構築できる
向いていない人・注意が必要な人
- Linuxコマンドに全く触れたことがない方:Dockerの前にLinuxの基本操作(ファイル操作、パーミッション、テキストエディタの使い方など)を習得しておくことが推奨される
- サーバー管理に時間をかけたくない方:VPS+Dockerの組み合わせはすべて自己管理が前提となるため、マネージドサービス(PaaSなど)のほうが手間が少ない場合がある
- 大規模なトラフィックが想定されるサービス:単一VPSでのDocker運用にはスケーラビリティに限界があるため、クラウドのコンテナサービス(AWS ECS、Google Cloud Runなど)のほうが適している場合がある
よくある質問(FAQ)
Q1. VPSのメモリはどれくらい必要ですか?
Docker Engineの動作自体には数百MB程度のメモリが必要です。これに加えて各コンテナが消費するメモリを考慮する必要があります。学習・検証目的であれば2GB程度のプランが一般的な目安とされています。WordPressとデータベースを同時に動かすような構成では、スペック面から見ると4GB以上のメモリがあると安定しやすいと考えられます。
Q2. Docker ComposeのV1とV2の違いは何ですか?
Docker Compose V1はdocker-compose(ハイフンあり)というPython製の独立したコマンドでしたが、V2からはGo言語で書き直され、docker compose(ハイフンなし)というDockerのサブコマンドとして統合されました。2023年7月にV1は公式にEnd of Lifeとなっているため、新規構築ではV2を使用してください。
Q3. DockerとDocker Desktopは違うのですか?
Docker Desktopは、WindowsやmacOSでDockerを使うためのGUIアプリケーションです。VPS上のLinuxでは、Docker Engine(CE:Community Edition)を直接インストールするため、Docker Desktopは不要です。なお、Docker Desktopには商用利用に関するライセンス条件がありますが、Docker Engine(CE)はApache License 2.0で提供されており、商用利用に追加費用はかかりません。
Q4. コンテナを停止するとデータは消えますか?
コンテナ内に直接保存されたデータは、コンテナの削除時に失われます。データを永続化するには、Docker Volumeまたはバインドマウントを使用して、ホストOS側のストレージにデータを保存する設定が必要です。上記のWordPress構成例ではvolumesを設定しているため、コンテナを削除・再作成してもデータは保持されます。
Q5. セキュリティアップデートはどうすればいいですか?
Docker自体のアップデートはapt update && apt upgradeで行えます。コンテナ内のアプリケーションについては、docker compose pullでイメージを最新版に更新した後、docker compose up -dでコンテナを再作成することで適用されます。定期的な更新を習慣にすることが推奨されます。
まとめ
VPSにDockerを導入することで、サーバー環境の構築・管理が大幅に効率化されます。この記事で解説した手順をまとめると、以下の流れになります。
- 用途に合ったスペックのVPSを契約する(学習用途なら2GBメモリ程度が目安)
- SSH接続後、Docker公式リポジトリからDocker Engineをインストールする
- Docker Composeを使って、YAMLファイルでサービス構成を定義・起動する
- ファイアウォールやポート公開の設定など、セキュリティ面の対策を忘れずに行う
Docker環境の構築は一見ハードルが高く感じられますが、手順どおりに進めれば初心者でも十分に対応できます。一度環境を構築してしまえば、その後の開発・運用効率は大きく向上するため、VPSを活用している方やこれから始める方は、ぜひDockerの導入を検討してみてください。
VPSの選び方やプランの比較については、以下のリンクから各社の公式情報を確認できます。自分の用途や予算に合ったサービスを選ぶ際の参考にしてください。
