[英]cannot access webapp running in docker
我遵循了有关使用 Docker 创建网络应用程序的教程。 我的 dockerfile 暴露了 5000 端口:
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 5000
#EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR .
COPY ["CustomerApi/CustomerApi.csproj", "CustomerApi/"]
COPY ["CustomerApi.Domain/CustomerApi.Domain.csproj", "CustomerApi.Domain/"]
COPY ["CustomerApi.Service/CustomerApi.Service.csproj", "CustomerApi.Service/"]
COPY ["CustomerApi.Data/CustomerApi.Data.csproj", "CustomerApi.Data/"]
RUN dotnet restore "CustomerApi/CustomerApi.csproj"
COPY . .
WORKDIR "./CustomerApi"
RUN dotnet build "CustomerApi.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "CustomerApi.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "CustomerApi.dll"]
当我使用本地运行图像时
docker run myrepo/demo:latest -p 5000:5000 -p 5001:5001 -e ASPNETCORE_HTTP_PORT=https://+:5001 -e ASPNETCORE_URLS=http://+:5000
并在https://localhost:5000
上打开我的浏览器,我得到ERR_EMPTY_RESPONSE
(我不确定为什么我的 docker docker run
-command 中需要5001
,因为它没有在我的 dockerfile 中公开)。
当我检查 docker 桌面中的图像时,我看到:
特别是它显示ASPNETCORE_URLS=http://+80
,尽管我使用-e ASPENTCORE_URLS=https://5000
覆盖了上面的内容。
docker run
的选项分为两部分:
所以你的命令应该是这样的
docker run -p 5000:5000 -p 5001:5001 -e ASPNETCORE_HTTP_PORT=https://+:5001 -e ASPNETCORE_URLS=http://+:5000 myrepo/demo:latest
EXPOSE 实际上并没有做任何事情。 它主要是关于您认为容器使用哪些端口的文档。 它可能是错误的,如果它是错误的,您不会收到任何错误或警告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.