web-dev-qa-db-ja.com

Dockerで複数のポートを公開するにはどうすればいいですか?

だから私はマシンのインターフェースに公開する必要があります3つのポートがあります。 Dockerコンテナーでこれを行うことは可能ですか?

347
nubela

1つのポートだけを公開するには、これを行う必要があります。

docker run -p <Host_port>:<container_port>

複数のポートを公開するには、単純に複数の-p引数を指定します。

docker run -p <Host_port1>:<container_port1> -p <Host_port2>:<container_port2>
562
Tania Ang

ステップ1

あなたのDockerfileでは、動詞EXPOSEを使って複数のポートを公開することができます。
例えば。

EXPOSE 3000 80 443 22

ステップ2

それからあなたは上記のDockerfileに基づいて新しい画像を作りたいと思います。
例えば。

docker build -t foo:tag .

ステップ3

それからEXPOSEの上のDockerfileで定義されているように、-pを使ってホストポートとコンテナポートをマッピングすることができます。
例えば。

docker run -p 3001:3000 -p 23:22

連続したポートの範囲を公開したい場合は、dockerを次のように実行します。

docker run -it -p 7100-7120:7100-7120/tcp 
208
mainframer

docker-compose.ymlfileを使用する場合:

services:
    varnish:
        ports:
            - 80
            - 6081

ホスト/ネットワークポートも指定できます

varnish:
    ports:
        - 80:80
        - 6081:6081
24
Rashidul Islam