You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署的.NET 8 API无法访问,排查基础问题后仍未解决

问题:Docker容器内的.NET API无法通过浏览器访问

我成功构建了Docker镜像:

sudo docker build -t meicrosoft-billing-api -f src/Meicrosoft.Billing.API/Dockerfile . --no-cache

随后使用以下命令运行容器:

sudo docker run -d -e ConnectionStrings__OrderConnection="Server=[::1];Database=MeicrosoftBilling;User id=sa;Password=...;TrustServerCertificate=True" \
    -p 8080:8080 \
    meicrosoft-billing-api:latest

Dockerfile内容:

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["src/Meicrosoft.Billing.API/Meicrosoft.Billing.API.csproj", "src/Meicrosoft.Billing.API/"]
COPY ["src/Meicrosoft.Billing.Application/Meicrosoft.Billing.Application.csproj", "src/Meicrosoft.Billing.Application/"]
COPY ["src/Meicrosoft.Billing.Domain/Meicrosoft.Billing.Domain.csproj", "src/Meicrosoft.Billing.Domain/"]
COPY ["src/Meicrosoft.Billing.Infra.CrossCutting/Meicrosoft.Billing.Infra.CrossCutting.csproj", "src/Meicrosoft.Billing.Infra.CrossCutting/"]
COPY ["src/Meicrosoft.Billing.Infra/Meicrosoft.Billing.Infra.csproj", "src/Meicrosoft.Billing.Infra/"]
RUN dotnet restore "./src/Meicrosoft.Billing.API/./Meicrosoft.Billing.API.csproj"
COPY . .
WORKDIR "/src/src/Meicrosoft.Billing.API"
RUN dotnet build "./Meicrosoft.Billing.API.csproj" -c $BUILD_CONFIGURATION -o /app/build

FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./Meicrosoft.Billing.API.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Meicrosoft.Billing.API.dll"]

容器运行状态显示正常,但浏览器无法访问,提示页面无法加载。执行docker ps查看结果:

CONTAINER ID   IMAGE                                        COMMAND                  CREATED         STATUS         PORTS                                                  NAMES
container_id   meicrosoft-billing-api:latest                "dotnet Meicrosoft.B…"   5 minutes ago   Up 5 minutes   8080-8081/tcp, 0.0.0.0:8080->80/tcp, :::8080->80/tcp   vibrant_aryabhata

我已确认端口未被占用,尝试过无缓存重新构建镜像、重建容器,访问localhost:8080和localhost:8081均无效。容器日志显示API已启动并监听:

info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://[::]:8080
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: /app

请问我遗漏了什么配置?恳请指导。


内容的提问来源于stack exchange,提问作者Nome Sobrenome

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 04:41:12