Docker-Composeは複数のコンテナを簡単に管理・構成できるツールです。ここでは、docker-compose.yml
を使ったネットワーク設定とポートマッピングの方法を具体例と簡単な例えを交えて解説します。
Docker-Composeでは、以下のディレクティブを使ってネットワークやポートの設定を行います。
ports
ディレクティブの使い方ports
は、ホストとコンテナのポートをマッピングするために使用します。これは、Dockerの-p <ホストポート>:<コンテナポート>
オプションに相当します。
構文:
ports:
- "<ホストポート>:<コンテナポート>"
例え:
ports
は「建物(ホスト)の玄関番号(ポート)」を指定して、コンテナ(部屋)内のサービスにアクセスする道を作る仕組みです。
networks
セクションの基本networks
セクションを使うと、カスタムネットワークを定義して、コンテナ間の通信を分離または整理できます。
構文:
networks:
<ネットワーク名>:
driver: <ネットワークドライバ>
よく使うドライバ:
bridge
: デフォルトで使用される仮想スイッチ。overlay
: 複数ホスト間で通信可能(Swarmで利用)。例え:
networks
は「特定の部屋(コンテナ)同士だけで通信する専用の廊下」を作るようなイメージです。
以下は、Nginxを使ったサンプルのdocker-compose.yml
ファイルです。この設定では、ホストの8080ポートをコンテナの80ポートにマッピングし、カスタムネットワークを構築します。