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

ASP.NET Core 8 Web API Linux Docker部署遇连接重置问题

ASP.NET Core 8 Docker 端口映射及日志排查方案

一、查看容器日志

  • 查看已停止容器的日志:先通过docker ps -a获取容器ID或名称,再执行docker logs <容器ID/名称>,比如docker logs test。
  • 实时追踪运行中容器的日志:执行docker logs -f <容器ID/名称>,比如docker logs -f test。
  • 启动容器时直接查看日志:不要加-d参数,直接运行docker run -p 5063:5063 --name test my-api,日志会实时输出到控制台。

二、进入容器命令行

  • 进入运行中的容器:执行docker exec -it <容器ID/名称> bash(Linux容器默认用bash,若bash不存在换sh),比如docker exec -it test bash。
  • 启动容器并直接进入交互式终端:执行docker run -it --rm my-api bash,退出终端后容器会自动销毁(适合临时排查)。

三、端口映射问题修复

问题根源

你的API在容器内实际监听的是8080端口,而非项目launchSettings.json中配置的5063——这是因为.NET 8官方Docker镜像默认将监听端口设为8080,本地调试的端口配置不会同步到Docker环境。

解决方法

方法1:启动容器时指定环境变量

运行容器时通过-e参数覆盖监听端口,让API在容器内监听5063:

docker run -p 5063:5063 --name test -e ASPNETCORE_URLS=http://+:5063 my-api

方法2:修改Dockerfile固化端口

在Dockerfile中添加环境变量配置,构建镜像后无需每次启动都指定:

# 其他Docker指令...
ENV ASPNETCORE_URLS=http://+:5063
EXPOSE 5063

重新构建镜像后,用原命令启动即可:

docker run -p 5063:5063 --name test my-api

验证

启动容器后,执行docker exec test netstat -tulnp查看容器内监听端口,确认5063端口处于监听状态,此时主机访问http://localhost:5063即可正常连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 07:02:44