Как подключиться к приложению внутри контейнера docker внутри wsl2 с хоста Windows?

#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. Добро пожаловать рад узнать, что это помогло