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

Docker build尝试HTTPS访问已配置的insecure registry连接被拒绝

问题原因

Docker for Windows 3.0+版本默认启用BuildKit作为构建后端,BuildKit组件独立于Docker daemon运行,默认不会读取daemon配置的insecure-registries规则,因此会强制对所有镜像仓库发起HTTPS请求,和你本地私有仓库的HTTP运行配置冲突。
你遇到的docker pull正常、docker build报错的现象,是因为pull走Docker daemon的原生逻辑,会遵循insecure-registries配置自动降级到HTTP协议,而BuildKit走独立逻辑没有读取该配置导致。


解决方案

方案1:单次构建临时禁用BuildKit

单次构建时传入环境变量关闭BuildKit即可,适配不同环境的命令如下:

  • PowerShell环境执行:
$env:DOCKER_BUILDKIT=0; docker build .
  • WSL/ Linux 子系统环境执行:
DOCKER_BUILDKIT=0 docker build .

方案2:全局关闭BuildKit(长期生效)

如果不需要使用BuildKit的特性,可以直接在Docker配置中全局关闭该功能:

  1. 打开Docker Desktop设置面板,进入Docker Engine配置页
  2. 在原有JSON配置中增加features字段,完整配置参考如下:
{
  "insecure-registries": [
    "harbor.local"
  ],
  "features": {
    "buildkit": false
  }
}
  1. 点击Apply & Restart重启Docker服务后,所有构建操作都会走原生Docker逻辑,自动适配insecure-registries配置。

方案3:单独配置BuildKit私有仓库规则(保留BuildKit功能)

如果需要保留BuildKit的构建加速等特性,可以单独为BuildKit配置私有仓库规则:

  1. Windows环境下打开C:\Users\<你的系统用户名>\.docker目录,新建buildkitd.toml文件(如果是Linux/WSL环境则新建/etc/buildkitd.toml)
  2. 写入以下配置内容:
[registry."harbor.local"]
  http = true
  insecure = true
  1. 重启Docker服务后重新执行构建即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:06:09