ServBayでDockerコンテナベースのウェブサイトを追加・設定する
ServBayはmacOS向けに設計されたローカルWeb開発環境です。PHP、Node.js、Python、Go、Java、データベースなど多様な言語・技術スタックをサポートするパッケージを直接使用できるだけでなく、Dockerコンテナを利用してサイトやサービスを運用・管理することも可能です。これにより、柔軟な環境分離と一貫性が実現でき、とくに特定の環境や依存関係が必要なプロジェクトに最適です。
本記事では、Dockerコンテナ上で稼働するウェブサイトをServBayに追加し、リバースプロキシ機能を活用してローカル開発フローに統合する方法を詳しく解説します。
概要
ServBayをリバースプロキシとして設定することで、特定のドメインへのリクエストをDockerコンテナ内のサービスへ転送できます。ServBayはエントランストラフィック(HTTPS証明書、ドメイン解決など)の管理を担当し、Dockerコンテナはアプリの実行に専念します。このアーキテクチャにより、ServBayの便利なGUI管理とDockerの高いコンテナ化能力を融合できます。
以下の手順では、Dockerサービスで構築したサイトをServBayに追加・設定するプロセスをガイドします。
前提条件
作業開始前に、以下の条件を満たしていることをご確認ください。
- ServBayがインストールされ、起動していること: macOS上にServBayをインストールし、正常に起動している。
- Dockerがインストールされ、稼働していること: macOSにDocker Desktopまたは他のDocker環境がインストールされ、サービスが稼働中である。
- Dockerイメージ・コンテナの用意: アプリやサイトを含むDockerイメージをビルド・取得済みで、コンテナとして起動できる。
サイト追加の詳細な手順
ステップ1:Dockerコンテナの準備と起動
まずDockerコンテナが稼働中で、その内部サービス(例:Webサーバー)がDockerのポートマッピング機能によって、ホスト(=macOS)の利用可能なポートへ公開されていることを確認します。
例えば、シンプルなNginxコンテナで内部Nginxが80番ポートで待ち受けている場合、以下のコマンドでホストの8080ポートをコンテナの80番にマッピングできます。
docker run -d --name my-nginx-servbay -p 8080:80 nginx
この例では、my-nginx-servbay
というDockerコンテナ内でNginxが80
番ポートをリッスンしていますが、-p 8080:80
が指定されているため、ホストの8080
ポートにマップされています。ServBayはこのホストの8080
ポートへ接続する必要があります。
ご自身のアプリやDockerfile設定に合わせて、必要なサービスが正しいポートで待ち受けており、そのポートがホスト側でも接続可能になっていることを確認しましょう。
ステップ2:ServBay管理画面を開く
macOSのアプリケーションフォルダからServBay
アイコンを見つけ、ダブルクリックしてServBayの管理画面を立ち上げます。
ステップ3:ウェブサイト管理画面へ移動
ServBayを起動するとメイン画面が表示されます。左側のナビゲーションメニューからウェブサイト
を選択してください。これで、ServBayに登録済みのすべてのローカルサイトの管理・設定ページに入ることができます。
図:左ナビゲーションの「ウェブサイト」をクリックし、管理ページへ。
ステップ4:新しいサイトを追加
サイト管理ページ下部にある+
ボタンをクリックすると、右側エリアに新しいウェブサイトの設定フォームが表示されます。
図:ページ下部の「+」をクリックして新規サイトを追加。
ステップ5:サイト設定の構成
新しく開かれた設定フォームに、次の要点を記入します。
- 名称 (Name): サイトを識別しやすい名称を付けます(例:
Docker Nginx Demo
)。この名前はServBay管理内のみで使用されます。 - ドメイン (Domain): このDockerコンテナサイトにローカルでアクセスするときのドメイン名を入力してください。公共ドメイン競合を避けるため、
.servbay.demo
のようなサフィックスを推奨します。例:docker.servbay.demo
。ServBayが自動でシステムのhostsファイルを編集し、このドメインをローカル(127.0.0.1
)に割り当てます。 - プロトコル (Protocol): サイトで使用するプロトコルを選択します。通常はデフォルトの
HTTP/HTTPS
でOKです。ServBayはHTTP(80)・HTTPS(443)の両ポートを待ち受けし、SSL設定に従って処理します。 - SSL証明書リクエスト方法 (SSL Certificate Request Method):
ServBay CA
を推奨します。ServBayはローカル環境で信頼できるServBay User CA発行のSSL証明書を自動生成・管理します。ServBay Public CAをシステムキーチェーンにインストールすれば、ローカル証明書がブラウザで信頼されHTTPS開発も快適です。必要に応じてACME
(Let's Encrypt等)やCustom
も選択できます。 - サイトタイプ (Website Type): 【重要】
リバースプロキシ (Reverse Proxy)
を選択してください。これにより、ServBayが指定ドメインの入口となり、リクエストを指定バックエンドサービスへ転送します。 - IPアドレス (IP Address): Dockerコンテナのサービスがホスト側で待ち受けているIPアドレスを入力します。通常はローカルループバックアドレス
127.0.0.1
です。 - ポート (Port): Dockerコンテナのサービスがホスト側で公開しているポート番号を入力します。
docker run -p <ホストポート>:<コンテナポート>
で指定した<ホストポート>
にあたります。例:-p 8080:80
の場合、ここには8080
と入力。
図:Dockerリバースプロキシ型サイトの設定情報入力例。
ステップ6:設定を完了・保存
全ての必須項目を入力したら、フォーム下部の追加 (Add)
ボタンをクリックします。
ServBayが要求を処理し、自身のWebサーバー(CaddyやNginx等)のリバースプロキシ設定を自動追加。また、システムのhostsファイルも設定し、指定ドメインをローカルアドレスへ自動割り当てします。
保存が成功すると、設定の反映作業がしばらく行われた後、追加したドメインアクセスが可能となります。
ステップ7:サイトへアクセスし、ショートカットを活用
設定の保存後、サイト管理画面で新規追加されたエントリが確認でき、ステータスが「稼働中」であることを確認してください。
そのドメイン(例:http://docker.servbay.demo
やhttps://docker.servbay.demo
)をブラウザで開き、正しく設定できていれば、リクエストがDockerコンテナのサービスへ転送され、提供中のWebコンテンツが表示されます。
各サイトエントリ横には、便利なショートカットボタンが用意されています:
- IDEでサイトルートを開く: (リバースプロキシ型では無効の場合あり、ServBay設定ディレクトリを開くことも。挙動はバージョンや設定に依存)
- ブラウザでサイトを開く: 登録URLを新規タブですぐに開く。
- サイトログを確認: サイトごとにアクセスログ・エラーログを参照。デバッグ作業に便利です。
- サイトの一時停止/再開: サイトのServBayリバースプロキシ設定を一時的に無効化・有効化。
- サイト削除: サイトの設定をServBayから削除します。
図:ServBayサイトエントリで利用可能なショートカットボタン。
注意事項とベストプラクティス
- Dockerコンテナの稼働状態: 目的のDockerコンテナが常に稼働していることを確認してください。停止中ではServBayが転送できません。
- ポートマッピング: Dockerのポート設定(
-p
オプション)とServBayの記入ポートが一致し、該当ポートが他のアプリで使用されていないことを必ず確認。 - ファイアウォール: macOSのファイアウォール設定で、ServBayのデフォルトポート(80, 443)、およびDocker公開ポートへのアクセスがブロックされていないか点検しましょう。
- Dockerネットワークモード: 通常はデフォルトの
bridge
モードで-p
オプションを使ったマッピングが最も簡単です。host
モード使用時は、コンテナ内部の待ち受けポートがそのまま利用できます(例:80番ならServBayも80番指定)。ただしhost
モードは競合リスクがあります。 - ServBay CAについて: HTTPS開発効率化のため、ServBay Public CAのインストールを強く推奨します。ローカル証明書が信頼され、安全警告も回避できます。
FAQ・トラブルシューティング
Q: サイト追加後にアクセスできず、ブラウザで接続エラー・タイムアウトが表示される?
A: 次の項目を順にご確認ください。
- ServBayサイトのステータス確認: 管理画面で「稼働中」表示を確認。
- Dockerコンテナの稼働確認: ターミナルで
docker ps
を実行し、対象コンテナが起動していることを確認。 - Dockerポートマッピングの確認:
docker ps
のPORTS
列で、ホストポート(例:0.0.0.0:8080->80/tcp
や127.0.0.1:8080->80/tcp
内の8080
)がServBay設定どおりか確認。 - コンテナ内サービス状態確認: 対象Webサービス(Nginx, Apache, Nodeアプリ等)が正しいポートで稼働中か、エラーがないか。
docker logs <コンテナIDまたは名前>
でログを参照。 - ServBayログの確認: 管理画面の該当サイトでログアイコンをクリック。アクセス・エラーログから転送失敗などの詳細を確認。
- システムhostsファイルの確認: 通常は自動設定ですが、
/etc/hosts
で正しく127.0.0.1
が割り当てられているか念のためチェック。 - ファイアウォール再確認: 各種ポートへのアクセスがブロックされていないかを再確認。
Q: ServBayでDockerコンテナ自体の管理(起動・停止など)は可能ですか?
A: ServBayの主な役割はローカルWebサービス、データベース、各種開発言語環境の管理、およびトラフィックを(Dockerを含む)バックエンドサービスにルーティングすることです。Dockerコンテナの起動・停止・イメージビルド等のライフサイクル管理は行いません。これらの操作は従来通りDocker CLIやDocker Desktopで実施してください。
Q: ServBay CAとは?なぜインストールする必要があるの?
A: ServBay CA(証明機関)は、ローカルHTTPS開発をスムーズに行うために設計された独自の証明書管理機構です。ServBay User CAがローカルサイト用SSL証明書の発行者となり、ServBay Public CAがそのルート証明書として機能します。Public CAをシステムのキーチェーンへインストールすれば、あらゆるServBay署名証明書がOS・ブラウザで信頼されるようになり、「安全でない接続」警告なくローカルHTTPSサイトでの開発・テストが行えます。本番環境に近いHTTPS運用の再現に不可欠な設定です。
まとめ
DockerコンテナベースのウェブサイトをServBayに追加することで、ローカル開発環境の中核としてServBayを活かしつつ、Dockerの柔軟性と強力な分離性を活用できます。簡単なリバースプロキシ設定だけで、あらゆるDockerプロジェクトをServBayワークフローに統合することが可能です。この記事で紹介した手順と注意点を守ることで、Docker化されたローカルサイトを効率よくセットアップ&運用できます。