Docker EXPOSE порт тільки для хоста


99

Чи здатний докер виставляти порт лише на хост, а не назовні.

Мені потрібно встановити докер, що працює з базою даних mongo, і я хотів, щоб він був доступний лише з хосту, але мені потрібно зв’язати порт хосту 27017.

Чи можливо це, чи єдино можливим способом є зміна визначень брандмауера?

Відповіді:


141

Звичайно, просто прив’яжіть його приблизно localhostтак:

запуск докера -p 127.0.0.1:27017:27017

Також: Ваш хост може також спілкуватися з кожним контейнером, як правило, через свій IP. Використовуйте docker inspect $IDдля отримання дампа json (поряд з іншими речами), що містить мережевий IP.


4
Так це щось на зразок [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 ...?
Рубен

17
Другий варіант прив'язується до localhost, так. Перший робить порт загальнодоступним. Якщо ви не хочете статичний порт, використовуйте 127.0.0.1::27017.
ZeissS 01.03.14

3
Здається, це рішення не працює для режиму
роїння.

1
просто еквівалент docker-compose service-name: { ... ports: [ "127.0.0.1:27017:27017" ] }?
Гроостав,

1
У чому проблема мого docker-compose, хоча він прив’язаний лише до localhost, але він є загальнодоступним. stackoverflow.com/questions/50621936/…
Тара Прасад Гурунг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.