Dockerfile EXPOSE 命令の詳細
Dockerfile に書かれた EXPOSE 命令はコンテナが指定されたポートをlistenするプロセスを持つことをDockerに示します。 しかし厳密にはネットワークに何ら影響を与えないので、実質コメントと同義です。
親記事
Docker入門 関連記事
EXPOSE
コンテナが指定されたポートをlistenするプロセスを持つことをDockerに示します。 この情報は、コンテナをリンクするときにDockerによって使用されます。
EXPOSE命令は以下のように書きます。
EXPOSE <port> [<port>/<protocol>...]
厳密にいうと、EXPOSE命令自体は、ネットワークに影響を与えません。
Dockerコンテナからホストシステムにアクセスするためには、docker run
時に-p
オプションを使用してポートのマッピングを定義する必要があります。
以下のようにdocker run
命令に-p
オプションを使用してポートを結びつけるように書くことで、Dockerコンテナのポート80をホストシステムのポート8080にマッピングすることができます。
docker run -p 8080:80 my-image
EXPOSE
命令は、Dockerコンテナが使用するポートを定義するための基本的な方法を提供しますが、実際にホストシステムとの通信を確立するためには、-pオプションを使用してポートのマッピングを定義する必要があります。