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

GitLab CI执行Docker构建时无法连接Docker daemon问题咨询

GitLab CI 构建Docker镜像时Daemon连接故障修复方案

故障表现

流水线执行docker build命令时报错:

failed to dial gRPC: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: dial tcp 127.0.0.1:2375: connect: connection refused

问题根源

现有配置存在三类常见问题:

  • 未显式关闭Docker客户端的TLS连接校验,客户端默认尝试连接本地127.0.0.1的2376/2375端口,没有走service定义的docker别名地址
  • 未给dind服务指定关闭TLS的启动参数,dind服务默认监听带TLS的2376端口,不响应2375端口的明文请求
  • 若配置修改后仍报错,大概率是所用Runner未开启特权模式,导致dind服务无法正常启动

修正后的配置

image: docker:20.10.16

services:
  - name: docker:20.10.16-dind
    command: ["--tls=false"]

variables:
  DOCKER_HOST: tcp://docker:2375
  DOCKER_TLS_CERTDIR: ""
  DOCKER_DRIVER: overlay2

iac-build:
  stage: build
  extends: .iac
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
      when: never
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      when: always
    - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
      when: always
  script:
    - docker info
    - docker build -t testfirstimage .
  allow_failure: false

Runner侧必要配置

使用Docker类型的Runner运行DinD任务时,必须修改Runner配置文件config.toml,在对应Runner的[runners.docker]段添加配置:

privileged = true

否则dind服务没有足够权限启动Docker守护进程,会持续报连接拒绝错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 10:24:12