Не удается подключиться с хоста на основной веб-сайт .net внутри контейнера докера - PullRequest
0 голосов
/ 03 января 2019

Я искал по этому поводу, но не могу найти решение ... У меня есть проект .NET Core web api и я поместил его в докер. Мой хост для докера - это виртуальная машина в VirtualBox с CentOS 7.5. Я запускаю контейнер с помощью команды:

docker run -d -name webapi -p 80:5000 netcorelnx

Затем я могу использовать команду:

docker exec -ti webapi /bin/bash

Доберитесь до этого контейнера и выполните внутри него:

curl localhost:5000/api/values

Возвращает правильные значения, возвращенные моим проектом .NET Core web api. Однако, когда я пытаюсь вызвать это из браузера моего хоста, используя url http://localhost/api/values, он говорит: «Соединение было сброшено». Это мой докер-файл:

...
FROM microsoft/dotnet:2.1-aspnetcore-runtime-bionic AS runtime
...
ENV ASPNETCORE_URLS http://+:5000
ENTRYPOINT["dotnet", "NetCoreWebApi.dll"]

Что не так?

1 Ответ

0 голосов
/ 03 января 2019

Как обычно, после многих часов исследований и публикации вопроса, я нашел решение. Проблема была в коде основного приложения .NET, которое я не написал. Была строка:

.UseKestrel(options => { options.Listen(IPAddress.Loopback, 5000); });

Вместо

.UseKestrel(options => { options.Listen(IPAddress.Any, 5000); });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...