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?
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>
Dans votre Dockerfile
name__, vous pouvez utiliser le verbe EXPOSE
pour exposer plusieurs ports.
par exemple.
EXPOSE 3000 80 443 22
Vous voudriez alors construire une nouvelle image basée sur Dockerfile
ci-dessus.
par exemple.
docker build -t foo:tag .
Ensuite, vous pouvez utiliser le -p
pour mapper le port de l'hôte avec le port du conteneur, comme défini ci-dessus EXPOSE
of Dockerfile
name__.
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
si vous utilisez docker-compose.yml
file:
services:
varnish:
ports:
- 80
- 6081
Vous pouvez également spécifier le port hôte/réseau
varnish:
ports:
- 80:80
- 6081:6081