ServerCost

Docker を VPS で動かす場合の必要スペック

公開: 2026-05-17 · 更新: 2026-05-26 · ServerCost 編集部

Docker / Docker Compose を VPS で動かすとき、迷いやすいのは「メモリ何 GB から始めるか」「ストレージはどれくらい必要か」です。 本記事では、Web アプリ・DB・ワーカーを VPS 上で動かす前提で、用途別のスペック目安と運用上の注意点を整理します。

先に結論: 本番は 2〜4GB から

開発検証だけなら 1GB でも動きますが、Web アプリと DB を同居させる本番では 2GB が下限、4GB が安心ラインです。 8GB 以上は、複数アプリ・ワーカー・DB・監視を同じ VPS にまとめる場合の選択肢です。

Docker そのものよりも、コンテナ内のアプリ、DB、ログ、ビルドキャッシュ、ボリュームがリソースを消費します。 VPS 選びではメモリだけでなく、SSD 容量と I/O 性能も同じくらい重要です。

Docker 自体の消費は意外と小さい

Docker daemon(dockerd)+ containerd のメモリ消費は、何もコンテナを動かしていない状態で 100〜200MB 程度。 つまりメモリ消費の大半はコンテナ内のアプリ次第です。

公式ドキュメントでも、Docker は未使用のイメージ・コンテナ・ネットワーク・ビルドキャッシュを自動削除せず、 明示的に prune する設計です。ストレージはイメージとキャッシュで増えやすく、 Node.js + Python + Postgres のような構成では数 GB 単位で消費します。 開発用 VPS では 50GB SSD 以上を選ぶのが安全です。

用途別の推奨スペック

用途メモリvCPUSSD
開発検証(1-2 コンテナ)1 GB130 GB
小規模 LEMP(Web + DB)2 GB1-250 GB
複数アプリ同居(5-8 コンテナ)4 GB2100 GB
本番マルチサービス(10-15 コンテナ)8 GB2-4160 GB
Docker Swarm / kind / 軽量 K8s16 GB+4-6320 GB+

1GB は「1 コンテナだけ」「DB は外部」「ビルドはローカルまたは CI」という条件なら選べます。 DB も含めて VPS 内に置くなら、2GB 未満は OOM Kill やスワップ多発のリスクが高くなります。

構成パターン別の考え方

  • Web + DB: アプリ 1 台、PostgreSQL / MySQL 1 台なら 2GB から。DB キャッシュを考えると 4GB が扱いやすい。
  • Web + DB + worker: キュー処理や画像変換を同居させるなら 4GB 以上。CPU も 2 vCPU 以上を選ぶ。
  • 複数アプリ同居: アプリごとにログ・イメージ・DB ボリュームが増えるため、8GB / 160GB SSD 以上を基準にする。
  • CI ビルドも VPS 内で実行: ビルド時に一時的なメモリとストレージを使うため、通常運用より 1 ランク上を選ぶ。

ストレージ容量が肝(特にイメージ)

Docker イメージはレイヤー共有されますが、古いイメージ、停止済みコンテナ、ビルドキャッシュを放置すると簡単に容量を使います。 WordPress / DB のボリュームも含めると、本番用なら 100GB 以上を見ておくと運用に余裕が出ます。

Docker 公式ドキュメントでは、未使用リソースの削除に docker image prunedocker container prunedocker system prune などのコマンドが用意されています。ボリュームはデータ消失につながるため、削除対象を確認してから実行します。

docker system df
docker system prune --filter "until=168h"

NVMe SSD 対応の事業者(Hetzner Cloud / Vultr / Linode など)を選ぶと、起動・ビルド・DB クエリの待ち時間を減らしやすくなります。

メモリが足りないなら swap を作る

VPS は標準で swap が無効化されているケースがあります。1〜2GB の swap を有効にしておくと OOM Kill の確率を下げられます。 ただし swap はメモリ不足を根本解決するものではなく、性能は落ちます。頻繁に swap するなら上位プランへ移行します。

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

本番運用で見るべき指標

  • docker stats: コンテナ別の CPU / メモリ使用量
  • docker system df: イメージ・コンテナ・ボリューム・ビルドキャッシュの容量
  • df -h: ルートディスクとボリュームの空き容量
  • journalctl: systemd 管理アプリや Docker daemon のログ
  • DB のバックアップサイズと復元時間

ディスク使用率が 80% を超えた状態で放置すると、DB 書き込み失敗やログ出力失敗で障害につながります。 監視は CPU よりも、まずメモリ・ディスク・HTTP 死活から入れるのが実用的です。

Docker ボリュームのバックアップ

Docker Compose で DB やアップロードファイルを扱う場合、重要なのはコンテナではなくボリュームです。 アプリイメージは再ビルドできますが、DB ボリュームとユーザーアップロードは失うと復旧できません。

  • DB は pg_dump / mysqldump など論理バックアップを取る
  • アップロードファイルは rsync または S3 互換ストレージへ退避する
  • VPS 側のスナップショットだけに依存しない
  • バックアップから別環境に復元できるか確認する

Docker と相性の良いサービス事業者

参考にした公式情報

関連: 主要 Provider の料金プラン一覧

執筆・監修

執筆: ServerCost 編集部 / 監修: 庄司 育雄

公式ページで確認できる情報だけを根拠にし、確認できない数値は推測で補完しません。

よくある質問

Q.Docker を動かすだけなら 1GB VPS で足りますか?

検証用に軽いコンテナを 1〜2 個動かすだけなら足りることがあります。ただし DB、ビルド、ログ、監視を同居させるとすぐ余裕がなくなります。本番で Web アプリと DB を動かすなら 2GB を下限、4GB を安心ラインにします。

Q.Docker 用 VPS でストレージはどれくらい必要ですか?

開発検証なら 30GB でも始められますが、本番では 50GB 以上を基準にします。イメージ、ビルドキャッシュ、停止済みコンテナ、DB ボリューム、ログが積み上がるためです。複数アプリ同居なら 100GB 以上が扱いやすいです。

Q.Docker Compose と VPS は相性がよいですか?

小〜中規模の自己運用では相性が良いです。app、db、worker、reverse-proxy を 1 台で管理でき、構成をファイルに残せます。一方、DB まで同居させる場合は単一障害点になるため、バックアップと復元確認を運用に組み込みます。

Q.Docker の prune は自動実行してよいですか?

未使用イメージやビルドキャッシュの整理には有効ですが、ボリューム削除はデータ消失につながります。自動化する場合は `docker system df` で増加傾向を確認し、ボリュームを削除対象に含めない設定から始めるのが安全です。

Docker 用 VPS を試算

メモリだけでなく、SSD 容量とバックアップの有無も合わせて比較してください。 Docker 本番運用では、安い 1GB よりも 2GB / 50GB 以上の方が結果的に安定しやすいです。