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

如何让Azure Container Apps适配.NET 8默认的8080 HTTP端口?

解决.NET 8容器端口适配Azure Container Apps的方案

方案1:利用Azure Container Apps端口转发(推荐)

无需修改容器或代码,直接在Azure Container Apps配置中指定容器监听端口为8080:

  • 部署Container App时,在容器配置里设置目标端口为8080
  • 开启Ingress并设置外部访问端口为80,Azure内置的反向代理会自动将外部80端口的流量转发到容器的8080端口

方案2:给dotnet进程授权绑定特权端口

在Dockerfile中添加命令,允许dotnet进程绑定80这类特权端口,无需以root用户运行:

# 在构建阶段或运行阶段添加以下命令
RUN setcap 'cap_net_bind_service=+ep' /usr/bin/dotnet

之后在应用配置(比如appsettings.json或命令行参数)中设置Kestrel监听80端口即可:

{
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://0.0.0.0:80"
      }
    }
  }
}

方案3:Docker内设置端口转发规则

在Dockerfile中添加iptables规则,将80端口的流量转发到8080:

# 先安装iptables(基于debian/ubuntu镜像)
RUN apt-get update && apt-get install -y iptables && rm -rf /var/lib/apt/lists/*
# 添加端口转发规则
RUN iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

注意:运行容器时需要开启NET_ADMIN权限,在Azure Container Apps的容器配置中开启安全能力,添加NET_ADMIN权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:23:11