Если вы выполните:
docker run -p 27017:27017 --name mongo mongo
Тогда докер интерпретирует это как:
docker run -p 0.0.0.0:27017:27017 --name mongo mongo
Это означает, что порт доступен с хоста, но также и снаружи.
Вы можете проверить это, запустив nmap -p 27017 <host IP>
с другого компьютера на вашем хосте. Порт 27017 должен отображаться как «открытый».
Если вы выполните:
docker run -p 127.0.0.1:27017:27017 --name mongo mongo
Тогда порт доступен только с хоста.
Вы можете проверить это, запустив nmap -p 27017 <host IP>
с другого компьютера на вашем хосте. Порт 27017 должен отображаться как «закрытый».
Наконец, если вы выполните:
docker run --name mongo mongo
Тогда все порты будут локальными для контейнера.
Опять же , вы можете проверить , что запустив nmap
на хосте с контейнером: nmap -p 27017 <container IP>
Порт 27017 должен отображаться как «закрытый».