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

如何通过YAML文件在Azure容器实例中配置端口转发?

Azure容器实例YAML的端口映射限制与替代方案

Azure容器实例(ACI)的服务设计不支持Docker那样的主机端口到容器端口的映射(即<外部端口>:<容器端口>的格式),这并非YAML Schema的限制,而是ACI本身的架构特性决定的:

  • ACI的ports配置仅用于声明容器需要暴露的端口,这些端口会直接绑定到ACI实例的公网/内网IP上,不存在“主机端口”这一层中转,外部访问时直接通过ACI_IP:容器端口连接。
  • 你之前配置的两个端口,只是同时开放了容器内的11401和1433端口,外部可以分别通过对应端口访问,并非端口转发。

如果需要实现类似14000:1433的端口转发效果,可以通过以下两种方式解决:

  1. 修改容器内服务的监听端口
    如果有权限修改容器镜像或启动参数,直接让容器内的服务(比如MSSQL)监听目标端口14000,然后在ACI YAML中仅暴露该端口:

    containers:
      - name: mssql-container
        image: mcr.microsoft.com/mssql/server
        environmentVariables:
          - name: ACCEPT_EULA
            value: "Y"
          - name: MSSQL_SA_PASSWORD
            value: "your-password"
          - name: MSSQL_TCP_PORT
            value: "14000"
        ports:
          - port: 14000
            protocol: TCP
    
  2. 借助Azure网关类服务做端口转发
    如果无法修改容器镜像,可以在ACI前端部署Azure应用网关或负载均衡器(需将ACI部署在VNet内),通过配置转发规则,将外部的14000端口流量转发到ACI实例的1433端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:25:16