Dockerのポートマッピングは、ホストとコンテナ間の通信を実現するための重要な設定です。この章では、ポートマッピングの役割と基本構文、さらに具体例を簡単な例えを交えながら説明します。
ポートマッピングは、ホストマシン(物理または仮想環境)とコンテナ内のアプリケーション間で通信を可能にする仕組みです。コンテナは通常、Docker内部の独立したネットワークで動作しているため、外部から直接アクセスすることはできません。ポートマッピングを設定することで、ホストマシンのポートを介して外部からコンテナ内のサービスにアクセスできます。
ポートマッピングは、「ビル(ホスト)の玄関(ホストのポート)」から特定の部屋(コンテナのポート)に荷物(通信)を届ける仕組みと考えられます。玄関番号(ホストポート)が設定されていなければ、訪問者はどの部屋にもアクセスできません。
ポートマッピングを設定するためには、docker run
コマンドで以下の形式を使用します。
-p <ホストポート>:<コンテナポート>
p
: ポートマッピングを指定するオプション。<ホストポート>
: ホスト側で公開されるポート番号。外部からアクセスする際に使用。<コンテナポート>
: コンテナ内で動作するサービスがリスニングしているポート番号。ここでは、ホストの8080ポートをコンテナの80ポートにマッピングし、外部からNginxウェブサーバーにアクセスする具体例を示します。