Докер: скрыть порт с помощью --net = host - PullRequest
0 голосов
/ 07 октября 2018

Если для контейнера Docker установлено значение network_mode: host, любой порт, открытый в контейнере, будет открыт на хосте Docker , без необходимости параметр -p or -P docker run.

Как мне скрыть порт от общего доступа и сделать его доступным только в localhost.

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Если вы работаете с --net=host, вы используете сетевой стек хоста, и больше нет других элементов управления Docker относительно того, как он взаимодействует с сетью.Если вы хотите прослушивать только определенный интерфейс, ваш сервер связывает (2) с адресом на нем, как и любой другой процесс, работающий непосредственно на хосте.Большинство серверных пакетов более высокого уровня имеют опцию прослушивания по определенному адресу, и вы должны настроить сервер на прослушивание только 127.0.0.1.

Использование --net=host обычно не является наилучшей практикой.Если вы пропустите эту опцию и будете использовать стандартную сеть Docker, то опция docker run -p будет иметь возможность привязки к определенному IP-адресу хоста.Если ваш сервер прослушивает порт 80 внутри контейнера, и вы действительно хотите, чтобы он прослушивал порт 8888 и был доступен только с текущего хоста, вы могли бы

docker run -p 127.0.0.1:8888:80 ...

(В этом последнем случае процесс внутриконтейнер должен прослушивать 0.0.0.0 или какой-либо другой эквивалентный параметр «все адреса», даже если вы не хотите, чтобы он был доступен с внешнего компьютера.)

0 голосов
/ 07 октября 2018

Возможно, вам потребуется просмотреть iptables

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...