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

Visual Studio构建Docker镜像遇CTC-1014代理认证错误求助

解决办公网Docker构建镜像的代理认证错误(CTC1014)

问题背景

在家用网络中使用Docker Desktop和docker build构建镜像完全正常,但办公网环境下(通过Forefront TMG Client+Windows凭据代理连接外网)出现「CTC1014 代理认证要求」错误,无法拉取MCR官方镜像。已尝试多种配置方案无效,包括Docker Desktop代理设置、Dockerfile添加代理ARG、Visual Studio配置,且测试Docker 4.10.1和4.17.0版本均失败。

完整错误信息

级别    代码    描述  项目 文件    行    抑制状态
错误   CTC1014 Docker命令执行失败,退出码1。
#1 [internal] 从dockerfile加载构建定义
#1 sha256:6fb6c82191b12da8df4c262bce9667faefc40e3725c4dfc959aebca686b935e8
#1 传输dockerfile: 1.23kB 0.0s 完成
#1 完成 0.0s

#2 [internal] 加载.dockerignore
#2 sha256:304880e25345d6cb2af2bbadb00d5e909c5e811846e49e80a62952674d89978a
#2 传输上下文: 35B 0.0s 完成
#2 完成 0.0s

#3 [internal] 加载mcr.microsoft.com/dotnet/sdk:5.0-buster-slim的元数据
#3 sha256:c649b8985fea718a60b662fe79b91a725ab3e4c4764967511892d006b7b28ba0
#3 取消

#4 [internal] 加载mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim的元数据
#4 sha256:f3abb15cd48f1bf7d482810f16c4d2f5442172e86b1a2317ec3e041de068b455
#4 错误: 请求失败: Head "https://mcr.microsoft.com/v2/dotnet/aspnet/manifests/5.0-buster-slim": 需要代理认证
------
 > [internal] 加载mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim的元数据:
------
无法通过frontend dockerfile.v0完成构建: 无法创建LLB定义: 请求失败: Head "https://mcr.microsoft.com/v2/dotnet/aspnet/manifests/5.0-buster-slim": 需要代理认证  myapp.Myapp.Misc    d:\projects\myapp.myapp.microservices\myapp.mymyapp.misc\dockerfile 1   

针对性解决方案

1. 让Docker使用系统集成代理(适配Forefront TMG)

Forefront TMG依赖Windows集成认证,直接在URL中嵌入用户名密码无效,需配置Docker使用系统代理凭据:

  • 打开Docker Desktop设置 → Resources → Proxies
  • 勾选「Use system proxy」,确保系统代理已指向http://myproxy.com:8080(注意用http而非https,TMG代理通常处理HTTP转发)
  • 重启Docker Desktop

2. 手动配置Docker守护进程代理

若系统代理未生效,直接修改Docker守护进程配置:

  • 打开Docker Desktop设置 → Docker Engine
  • 在daemon.json中添加:
    {
      "proxies": {
        "default": {
          "httpProxy": "http://myproxy.com:8080",
          "httpsProxy": "http://myproxy.com:8080",
          "noProxy": "localhost,127.0.0.1,docker.internal"
        }
      }
    }
    
  • 点击「Apply & Restart」重启Docker

3. 为BuildKit单独设置代理环境变量

Docker BuildKit拉取镜像元数据时可能不继承Desktop代理设置,需手动配置:

  • 打开Windows命令提示符,执行:
    setx DOCKER_BUILDKIT=1
    setx HTTP_PROXY=http://myproxy.com:8080
    setx HTTPS_PROXY=http://myproxy.com:8080
    setx NO_PROXY=localhost,127.0.0.1,docker.internal
    
  • 重启命令提示符和Visual Studio后再尝试构建

4. 验证Forefront TMG Client状态

  • 确认TMG Client已正常运行,自动获取代理规则或手动指定代理地址正确
  • 用浏览器访问https://mcr.microsoft.com,验证是否能通过Windows凭据自动完成认证(无需手动输入用户名密码)

5. 降级Docker Desktop到兼容版本

部分新版本Docker对Windows集成代理支持存在问题,可尝试降级到4.8.2版本(该版本在TMG环境下代理兼容性较好),避开4.10+版本的代理弹窗无效问题

验证步骤

  1. 执行docker pull mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim,检查是否能正常拉取镜像
  2. 拉取成功后,再执行docker build构建项目
  3. 若仍失败,检查Visual Studio代理设置:工具 → 选项 → 项目和解决方案 → Web项目 → 确保「使用系统代理设置」已勾选

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 04:43:19