web-dev-qa-db-fra.com

Comment puis-je exposer plus de 1 port avec Docker?

J'ai donc 3 ports qui devraient être exposés à l'interface de la machine. Est-il possible de faire cela avec un conteneur Docker?

358
nubela

Pour exposer un seul port, voici ce que vous devez faire:

docker run -p <Host_port>:<container_port>

Pour exposer plusieurs ports, fournissez simplement plusieurs arguments -p:

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

Étape 1

Dans votre Dockerfilename__, vous pouvez utiliser le verbe EXPOSEpour exposer plusieurs ports.
par exemple.

EXPOSE 3000 80 443 22

Étape 2

Vous voudriez alors construire une nouvelle image basée sur Dockerfileci-dessus.
par exemple.

docker build -t foo:tag .

Étape 3

Ensuite, vous pouvez utiliser le -p pour mapper le port de l'hôte avec le port du conteneur, comme défini ci-dessus EXPOSEof Dockerfilename__.
par exemple.

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

Si vous souhaitez exposer une plage de ports continus, vous pouvez exécuter docker comme suit:

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

si vous utilisez docker-compose.ymlfile:

services:
    varnish:
        ports:
            - 80
            - 6081

Vous pouvez également spécifier le port hôte/réseau

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