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

Docker 23中配置insecure-registries后docker build失效求助

解决Docker 23.0.1 BuildX从不安全仓库拉取镜像失败的问题

Docker 23默认启用的BuildKit(BuildX依赖的构建引擎)和传统Docker Daemon的配置相互独立——你在/etc/docker/daemon.json里配置的insecure-registries仅对Daemon生效,BuildKit不会读取这个配置,所以构建时拉取FROM指令里的镜像仍会强制要求HTTPS,导致报错http: server gave HTTP response to HTTPS client。

以下是几个无需配置SSL证书、仅忽略SSL警告的解决办法:

方法1:临时构建时指定参数

适合临时测试,无需修改任何配置文件:

docker buildx build --allow insecure-entitlement security.insecure -t <你的镜像名称> .

执行这条命令时,BuildKit会临时允许不安全的仓库访问权限,直接拉取HTTP协议的镜像。

方法2:全局配置BuildKit支持不安全仓库

适合长期在开发环境使用,一次性配置后永久生效:

  1. 创建或编辑BuildKit的配置文件/etc/buildkitd.toml,添加你的自定义仓库配置:
# 替换成你的不安全仓库地址,比如 registry.local:5000
[registry."<你的仓库地址>"]
  http = true
  insecure = true
  1. 重启BuildKit服务使配置生效:
systemctl restart buildkit

之后无论是docker build还是docker buildx build都能正常从不安全仓库拉取镜像了。

方法3:创建专用的BuildX Builder实例

如果不想修改全局配置,可以单独创建一个支持不安全仓库的Builder实例:

# 创建并切换到新的Builder,替换<你的仓库地址>为实际地址
docker buildx create --use --name insecure-builder --driver-opt env=BUILDKIT_REGISTRY_MIRRORS='{"<你的仓库地址>": {"http": true, "insecure": true}}'
# 初始化Builder
docker buildx inspect insecure-builder --bootstrap

后续使用这个Builder构建时就会自动允许不安全仓库访问,需要切换回默认Builder时执行docker buildx use default即可。

注意:以上方法仅适合开发环境使用,生产环境强烈建议为私有仓库配置合法的SSL证书。

内容的提问来源于stack exchange,提问作者Michal Špondr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 21:32:54