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

无法从主机访问Docker部署的ASP.NET Core项目,需实时可编辑容器

问题解决:主机无法访问Docker内的ASP.NET Core项目

核心原因

你的ASP.NET Core应用在容器内仅监听了localhost:5001(容器内部回环地址),主机的端口映射无法穿透到这个地址,导致访问无响应。

解决步骤

1. 修改应用监听地址

修改Dockerfile中的启动命令,将监听地址改为0.0.0.0:5001,让应用监听容器的所有网卡:

CMD [ "dotnet","watch","run","--urls=http://0.0.0.0:5001/"]

2. 优化镜像源(可选但推荐)

你基于Ubuntu 20.04构建镜像,但使用了Ubuntu 22.04的微软源,替换为对应版本的源避免潜在问题:

# 替换原wget行
RUN wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb

3. 实现本地代码实时编辑编译

要让本地修改的代码同步到容器并触发自动编译,需要在docker-compose.yml中添加目录挂载:

version: "3.9"
services:
  aspnetcore_app_service:
    build: "./"
    ports:
      - 5001:5001
    volumes:
      - ./aspnetcore_app:/aspnetcore_app  # 本地项目目录与容器目录映射

注意:本地需提前创建aspnetcore_app目录并执行dotnet new mvc初始化项目,确保路径匹配。

验证

重新执行docker-compose up --build,主机访问http://localhost:5001即可正常获取响应,本地修改代码后,dotnet watch会自动重新编译并生效。

内容的提问来源于stack exchange,提问作者Abdullah ÇİFTÇİ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:23:12