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

GitLab CI中自定义镜像Docker-in-Docker Registry认证失败排查

GitLab CI自定义Docker镜像docker login报错解决

问题场景

在GitLab CI流水线的docker-in-docker模式下:

  • 使用官方docker:24.0.5镜像时,从Registry拉取镜像的配置可正常运行
  • 切换为内置Docker的自定义镜像my_custom_image后,已手动设置DOCKER_HOST和DOCKER_TLS_CERTDIR变量,但执行docker login时触发错误:

Error response from daemon: Client sent an HTTP request to an HTTPS server

原因分析

官方docker镜像会自动配置TLS相关环境变量,确保Docker客户端以HTTPS方式连接daemon;你的自定义镜像缺少这些TLS强制验证的配置,导致客户端默认用HTTP请求HTTPS的daemon,从而报错。

需要补充的环境变量

在CI流水线的变量配置中添加以下内容:

  • DOCKER_TLS_VERIFY=1:强制Docker客户端启用TLS验证,使用HTTPS连接daemon
  • 可选补充(若自定义镜像未自动关联证书路径):DOCKER_CERT_PATH=${DOCKER_TLS_CERTDIR}/client,明确指定客户端证书的存放路径(官方镜像默认会自动设置该关联)

同时需确保DOCKER_TLS_CERTDIR指向的目录下存在client子目录,且该目录包含ca.pem、cert.pem、key.pem三个TLS证书文件。

验证步骤

在CI任务中添加上述变量后,先执行docker info测试Docker客户端与daemon的连接状态,确认正常后再执行docker login操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 01:37:04