0

Dockerファイルを使用してホスト上の特定のポートをコンテナポートにバインドする方法はありますか

Dockerファイルに次の項目があります ステップ1:EXPOSE 8090:8080

しかし、docker run を実行すると、docker ファイルに記述されているように、コンテナはポート 8090 ではなくポート 8080 にバインドされます。

dockerファイルを使用してこれを達成する方法、またはこれを達成するためのより良い方法はありますか。

4

2 に答える 2

1

あなたが説明したように、ドッカーがEXPOSE機能を実装していることを確認できません。

ドキュメントから:

公開

EXPOSE <port> [<port>...]

このEXPOSE指示は、コンテナーが実行時に指定されたネットワーク ポートでリッスンすることを Docker に通知します。Docker はこの情報を使用して、リンクを使用してコンテナーを相互接続します ( Docker User Guideを参照してください)。

EXPOSEvagrantforwarded_port機能と同等ではありません。

コンテナをリンクする必要がある場合に便利です。

ポートをコンテナーからホストに転送する必要がある場合は、-pフラグを使用します。
例:

docker run -it -p 80:80 5959f94a4d10 /bin/bash
于 2014-10-17T01:49:01.473 に答える
0

Dockerファイルを使用してホスト上の特定のポートをコンテナポートにバインドする方法はありますか

いいえ。はポータブル構成Dockerfileのみを含むように設計されています。ホスト ポートはすべてのシステムで使用できるとは限らないため、ホスト ポートへのバインドは移植性がありません。これらの構成フラグは実行時に使用できる場合がありますが、Dockerfile 構文 (および結果の Docker イメージ) には含まれていません。

内部では、ホスト ポートとその他の移植性のない構成 (ボリューム マウントなど) はHostConfig、コンテナーの構造の一部です。これらは、コンテナーの実行時にのみ使用できます。

于 2014-10-19T18:40:48.190 に答える