Dockerは7000から8000までのすべてのポートまたはポートの範囲を公開します


97

Dockerfileでポート範囲を指定できますか

EXPOSE 7000-8000

コンテナを実行するとき、これらすべての公開されたポートをホストマシンの同じポートにバインドしますか?

docker run -p 7000-8000:7000-8000

回答:


134

Docker 1.5以降、公開できるようになりました、次を使用して、さまざまなポートを他のリンクされたコンテナに。

Dockerfile EXPOSEコマンド:

EXPOSE 7000-8000

またはDocker runコマンド:

docker run --expose=7000-8000

または、Docker runコマンドを使用して、ポートの範囲をホストマシンに公開できます。

docker run -p 7000-8000:7000-8000


14
ホストマシンで「iptables -L -n」の出力を確認すると、単一ポートのマッピングごとに数百行が表示されます。5000-50000を指定した場合、実際には長時間待つ必要があります。これは想定された動作ですか?
ᐅdevrimbaris

8
@ᐅdevrimbaris ポートごとに起動される Docker プロセスもあります。これが作業時間の大半を占めるものだと思います。
Matt

1
ドキュメントは、--publish-all , -P「すべての公開されたポートをランダムなポートに公開する」フラグについて話します。docs.docker.com/engine/reference/commandline/run
nils petersohn 2018年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.