Docker невозможно получить доступ к портам, отличным от порта 80 на хосте - PullRequest
0 голосов
/ 14 января 2020

У меня есть ситуация, когда у меня возникают проблемы с доступом к моим не-80 портам на хосте с docker. В моем контейнере есть приложение, необходимое для доступа к этому порту 55555 на моем хосте.

У меня есть 2 виртуальные машины - VM1 и VM2. VM1 имеет докеры и контейнер работает. VM2 - это машина, которую я использовал для тестирования.

Команда, используемая для запуска контейнера

docker run -dit --hostname VM1 --name ContainerTest mcr.microsoft.com/dotnet/framework/sdk:3.5-20191008-windowsservercore-ltsc2019

Я выполняю exec -it XXXX powershell для выполнения необходимых сценариев PowerShell. Я использовал test-netconnection для проверки своих соединений.

Проблема:

  1. Я попытался запустить следующий скрипт PowerShell test-netconnection -ComputerName "VM1" -port 55555 из моего контейнера - Ошибка. Тем не менее, я могу запустить test-netconnection -ComputerName "VM1" -port 80 и получить TcpTestSucceeded. Все остальные порты, которые я пробовал, тоже не сработали.

Что я пробовал:

  1. Я доказал, что порт VM55 55555 открыт для публикации c, как я могу пинговать, и tcp успешно проверить его с VM2 на VM1.

  2. Выключил брандмауэр на VM1. Также безуспешно.

Я также знаю, что docker имеет команду --expose and -p, чтобы выставить порты, однако, в моем случае, мне не нужно, так как мой цель состоит в том, чтобы получить доступ к порту хоста из контейнера, а не наоборот.

Я не понимаю, почему этот порт 55555 доступен только из VM2 в VM1, но не из контейнера в VM1, и контейнер может получить доступ VM1 только через порт 80. Может ли кто-нибудь рассказать о происходящем? Цени это.

1 Ответ

0 голосов
/ 14 января 2020

обычно существует служба, которая открывает порт, а не только номер порта в docker, который вы должны использовать docker оверлей сетевого драйвера для docker использование в других сетях, надеюсь, что ссылка поможет вам https://docs.docker.com/network/

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