株式会社エスロジカル
株式会社エスロジカル
SSL証明書(DV、OV、EV)、セキュリティ、Web開発、Linux開発、Go言語

HOME > 技術ドキュメント > Docker Composeで作る本番向けWebアプリ環境

Docker Composeで作る本番向けWebアプリ環境

執筆:株式会社エスロジカル(Webシステム受託開発・インフラ構築・運用改善)


Docker Compose は開発環境だけでなく、小〜中規模の本番環境にも十分活用できます。 Kubernetes の前段として使うことも多く、「まず Compose で動かして、必要になったら Kubernetes へ」 という段階的なアプローチが実務では効果的です。
本記事では、開発環境と本番環境の違いを踏まえた Docker Compose 本番設計のポイントを解説します。

項目 開発環境 本番環境
コードのマウント ホストのソースをコンテナにバインドマウント(ホットリロード) イメージにコードを COPY(イミュータブル)
DB パスワード 環境変数に直書きでも可 Docker Secrets または安全な手段で渡す
SSL/TLS なし / mkcert でローカル証明書 本番証明書が必須
リスタートポリシー なし(手動再起動) restart: unless-stopped または on-failure
リソース制限 不要 CPU・メモリ上限を設定(暴走防止)
ログ コンソール出力をそのまま確認 ログドライバー設定・ローテーション必須
DB パスワード・API キーを .env ファイルや compose.yaml に直書きしてはいけません。 Git に誤ってコミットされるリスクがあります。

本番での安全なシークレット管理方法:

Docker Compose 構成で HTTPS を提供する場合、Nginx コンテナで SSL ターミネーションを行うのが一般的です。

SSL証明書の一覧・購入はこちら /  SSL証明書 FAQ

Docker の healthcheck を設定することで、コンテナが起動していてもアプリが正常でない状態を検知できます。 また、依存サービス(DB)の起動完了を待ってアプリを起動するために使えます。

条件 推奨
単一サーバーで動かしている Docker Compose で十分
複数サーバーへのスケールが必要 Kubernetes または Docker Swarm を検討
ローリングアップデートが必要 Kubernetes を検討(Compose でも工夫次第で可能)
運用チームが小さい(1〜3人) Kubernetes のオーバーヘッドは大きい。Compose の方が現実的
クラウドのマネージド Kubernetes(EKS / AKS)を使える インフラ管理の負荷を軽減できる場合は Kubernetes も選択肢に

Docker 環境設計・インフラ構築のご相談はエスロジカルへ
Docker Compose から Kubernetes への移行支援、SSL 証明書設定まで一貫してサポートします。
お問い合わせはこちら
関連:SSL証明書 / SSL証明書 FAQ

関連ドキュメント


← 技術ドキュメント一覧へ戻る