Как использовать веб-API, развернутый на настольном клиенте Docker? - PullRequest
0 голосов
/ 06 апреля 2020

Я самообучаюсь. Net core и docker.

Я разработал прототип. Net core API, который развернут на настольном клиенте docker, работающем на моей машине, и я хочу потреблять его в настольном приложении.

Ниже приведен код, пытающийся использовать API, выдающий и выдававший ошибку:

Невозможно подключиться к серверу

Dim request As WebRequest =  WebRequest.Create("http://localhost:54382/weather")
Dim response As WebResponse = request.GetResponse()

Полагаю, проблема в номере порта. Я использую порт, показанный на клиенте docker, против запущенного приложения.

Мне нужно общее исправление c, которое будет работать с docker настольным клиентом, а также при развертывании приложения в docker хабе.

1 Ответ

0 голосов
/ 06 апреля 2020

Есть две отдельные сети. Внутри docker находится одна сеть. Снаружи docker, на главном компьютере, это другая сеть. Если вы обращаетесь к нему по локальному хосту или IP-адресу, он не будет работать так, как вы ожидаете. Вам придется пересечь границу сети и попасть в границу хост-машины. Или вам нужно указать docker network, как разрешить специальный localhost. Запустите эту команду, и вы получите представление о docker сети:

docker network ls

Вы должны увидеть очень похожий вывод:

NETWORK ID          NAME                DRIVER              SCOPE
58a4dd9893e9        133_default         bridge              local
424817227b42        bridge              bridge              local
739297b8107e        host                host                local
b9c4fb3ed4ba        none                null                local

Вам нужно добавьте хост для обслуживания на localhost. Попробуйте выполнить как приведенную ниже команду:

docker run --add-host myservice:<ip address of host computer> <your image>

Надеюсь, это исправит это.

Еще здесь: https://docs.docker.com/engine/reference/run/#managing -etchosts

...