Docker expose tous les ports ou la plage de ports de 7000 à 8000


Réponses:


134

Depuis Docker 1.5, vous pouvez désormais exposer une plage de ports à d'autres conteneurs liés en utilisant:

La commande Dockerfile EXPOSE :

EXPOSE 7000-8000

ou La commande d' exécution Docker :

docker run --expose=7000-8000

Ou à la place, vous pouvez publier une plage de ports sur la machine hôte via la commande d' exécution Docker :

docker run -p 7000-8000:7000-8000


14
Vérifiez la sortie de "iptables -L -n" sur la machine hôte et vous verrez des centaines de lignes chacune pour le mappage de port unique. Si vous donnez 5000-50000, alors pratiquement vous devez attendre longtemps. Est-ce le comportement supposé?
的 devrimbaris

8
@ 的 devrimbaris Un processus docker est également lancé par port . Je crois que c'est ce qui prend la plupart du temps de travail.
Matt

1
la documentation parle du --publish-all , -Pdrapeau qui "Publie tous les ports exposés sur des ports aléatoires". docs.docker.com/engine/reference/commandline/run
nils petersohn

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.