#docker #asp.net-core #visual-studio-2019
Вопрос:
Я пытаюсь убежать. asp.net веб-приложение core 3.1 внутри docker максимально простое, но docker не привязывает порт хоста.
Хост: Windows 10
Цель контейнера: Linux
Версия докера: 20.10.7
Докерфайл:
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
EXPOSE 80
EXPOSE 443
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY . .
RUN dotnet restore "WebApplication.csproj"
RUN dotnet build "WebApplication.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApplication.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication.dll"]
Команда сборки Docker (ок)
docker build -t webapplication .
Команда запуска докера (ок)
docker run webapplication -p 5000:80 -p 5001:443
Когда я пытаюсь получить доступ к веб-сайту на своем локальном хостинге (http://localhost:5000) Я понимаю, что до этого сайта нельзя добраться. Запуск docker ps
возвращенной информации о портах без сопоставления портов хоста
Комментарии:
1. добавить
-p
сразу послеrun
2. Ваша команда запуска должна быть
docker run -p 5000:80 -p 5001:443 webapplication
3. Спасибо! Я действительно думал, что порядок не имеет значения
Ответ №1:
Как правильно указал @marzelin, вам нужно добавить флаг сразу после запуска.