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

Windows10下Docker发布.NET项目时Nuget包下载失败如何解决

解决方案
  • 方案1:调整Docker网络MTU配置

    WSL2后端的Docker默认MTU(1500)和物理网络不匹配会导致大包传输丢包,是触发超时和SSL异常的常见原因。
    操作步骤:
    打开Docker Desktop设置 -> 选择「Docker Engine」,在配置JSON中添加MTU参数:

    {
      "mtu": 1450,
      // 保留原有其他配置不变
    }
    

    保存后重启Docker Desktop再尝试构建。

  • 方案2:替换容器内NuGet源为国内镜像

    官方NuGet源在国内网络环境下容易出现连接不稳定,你可以在dotnet restore步骤前配置国内镜像源:
    直接在Dockerfile的RUN dotnet restore行之前添加以下代码:

    RUN dotnet nuget add source https://mirrors.aliyun.com/nuget/v3/index.json -n aliyun
    

    也可以提前在项目根目录创建NuGet.Config文件,构建时直接复制到容器内:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <add key="aliyun" value="https://mirrors.aliyun.com/nuget/v3/index.json" />
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
      </packageSources>
    </configuration>
    

    然后在Dockerfile的restore步骤前添加:

    COPY NuGet.Config /root/.nuget/NuGet/NuGet.Config
    
  • 方案3:解决SSL证书信任问题

    如果你本地开启了Fiddler、Charles之类的抓包工具,或者公司网络有SSL代理,容器内的系统不会信任代理的根证书,就会报SSL连接错误。
    操作步骤:

    1. 导出代理工具/公司网络的根证书(CER格式)
    2. 在Dockerfile的build阶段添加证书信任逻辑:
    COPY your-root-cert.cer /usr/local/share/ca-certificates/
    RUN update-ca-certificates
    

    构建前临时关闭本地抓包工具可快速验证是否是该问题导致的异常。

  • 方案4:调整Docker DNS配置

    容器内DNS解析异常也会导致NuGet源连接失败,你可以在Docker Desktop的设置->Docker Engine中添加公共DNS:

    {
      "dns": ["223.5.5.5", "8.8.8.8"],
      // 保留原有其他配置不变
    }
    

    保存重启Docker后再尝试构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:24:04