#c# #asp.net #docker #wsl-2
#c# #asp.net #докер #wsl-2
Вопрос:
На Окнах:
Я только что создал приложение через dotnet new mvc
и создал файл Dockerfile для этого:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS baseWORKDIR /appEXPOSE 80EXPOSE 443FROM mcr.microsoft.com/dotnet/sdk:6.0 AS buildWORKDIR /srcCOPY ["src/App.csproj", "src/"]RUN dotnet restore "src/App.csproj"COPY . .WORKDIR "/src/src"RUN dotnet build "App.csproj" -c Release -o /app/buildFROM build AS publishRUN dotnet publish "App.csproj" -c Release -o /app/publishFROM base AS finalWORKDIR /appCOPY --from=publish /app/publish .ENTRYPOINT ["dotnet", "App.dll"]
Затем я открыл wsl2, вошел /mnt/d/myproject
, построил, построил docker build -t app .
и запустил его.
Я вижу, как он работает
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES9e17cbwe6e4c test1 "dotnet App.dll" 5 days ago Up About a minute 80/tcp, 443/tcp affectionate_goldstine
также есть правильные журналы:
[10:54:13 WRN] Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.[10:54:13 INF] User profile is available. Using '/root/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.[10:54:13 INF] Now listening on: http://[::]:80[10:54:13 INF] Application started. Press Ctrl C to shut down.[10:54:13 INF] Hosting environment: Production[10:54:13 INF] Content root path: /app/
но я не уверен, как я могу подключиться к нему?
Комментарии:
1. вы должны открыть порт 80 , используя опцию-p
-p 80:80
, вы можете связаться со своим приложением по адресу host_ip:80
Ответ №1:
вам нужно открыть порт с помощью-p
docker run -itd --name myapp -p 80:80 lt;imagegt;
затем вы можете связаться со своим приложением по адресу host_ip:80
Комментарии:
1. Хорошо, спасибо
2. Добро пожаловать рад узнать, что это помогло