Не удается получить доступ к API, запущенному через docker на порту 80 в Postman

#c# #docker #docker-compose #dockerfile

#c# #docker #docker-compose #dockerfile

Вопрос:

У меня есть простой API, который я запускаю в Docker

Когда я запускаю команду для запуска моего изображения, я получаю вывод ниже

 docker run newapi:latest mee
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://[::]:80
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /api
  

Все это выглядит нормально

Однако при использовании Postman мне отказывают в подключении

http://localhost/weatherforecast

Есть идеи, что не так?

Мой файл docker:

 FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /api

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

EXPOSE 80

# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /api
COPY --from=build-env /api/out .
ENTRYPOINT ["dotnet", "api.dll"]
  

Как вы можете видеть, я открываю порт 80

Я могу использовать http://localhost:8080 но я просто хочу иметь возможность использовать http://localhost

Ответ №1:

При запуске docker попробуйте сопоставить порт

 docker run -p 80:80 newapi:latest mee