Docker EXPOSE un port uniquement vers l'hôte


99

Le docker est-il capable d'exposer un port uniquement à l'hôte et non à l'extérieur.

J'ai besoin de mettre un docker en cours d'exécution avec une base de données mongo, et je voulais qu'il ne soit accessible qu'à partir de l'hôte, mais je dois relier le port d'hôte 27017.

Est-ce possible ou est-ce que le seul moyen possible est de modifier les définitions de pare-feu?

Réponses:


141

Bien sûr, liez-le simplement localhost, comme ceci:

docker exécuter -p 127.0.0.1:27017:27017

Aussi: votre hôte peut également parler à chaque conteneur normalement sur son IP. Utilisez docker inspect $IDpour obtenir un vidage json (à côté d'autres éléments) contenant l'adresse IP du réseau.


4
Est-ce quelque chose comme [1] docker run -p 27017: 27017 -v / var / lib / mongodb / master: / data mongo: storage_test / usr / bin / start-mongo [2] docker run -p 127.0.0.1: 27017: 27017 ...?
Ruben

17
La deuxième option se lie à localhost, oui. Le premier rend le port accessible au public. Si vous ne voulez pas de port statique, utilisez 127.0.0.1::27017.
ZeissS

3
Cette solution ne pas apparaître au travail pour former des essaims voir cette question github
bsimpson53

1
est l'équivalent docker-compose simplement service-name: { ... ports: [ "127.0.0.1:27017:27017" ] }?
Groostav

1
Quel est le problème dans mon docker-compose bien que lié à localhost uniquement mais il est accessible au public. stackoverflow.com/questions/50621936/…
Tara Prasad Gurung
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.