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

GitLab CI构建镜像报错无法连接tcp://docker:2375 Docker守护进程

问题场景

将Django项目推送至GitLab仓库,计划通过GitLab CI流水线完成Docker镜像构建与推送,流水线执行时持续抛出错误:

Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?

原有流水线配置如下:

stages:
  - build

variables:
  IMAGE_TAG: $CI_REGISTRY_IMAGE/commits:$CI_COMMIT_SHA

build-docker-image:
  stage: build
  tags:
    - docker
  image: docker:19.03.12
  services:
    - docker:19.03.12-dind
  before_script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD 
$CI_REGISTRY
  script:
    - docker build -t $IMAGE_TAG .
    - docker push $IMAGE_TAG
  only:
    - main
故障原因
  1. Docker-in-Docker(dind)服务运行要求执行Job的Runner开启特权模式,自托管Runner默认未开启该配置时,无法正常启动dind守护进程。
  2. docker:19.03版本之后的dind镜像默认开启TLS认证,原有配置未指定Docker客户端连接参数,导致客户端无法通过2375端口和守护进程建立连接。
  3. 原有配置中docker login命令被错误拆分为两行,会触发命令执行语法问题。
修复步骤
  • 检查绑定docker标签的GitLab Runner配置,确保Runner配置文件中对应Runner的privileged参数设置为true,修改后重启Runner生效。
  • 在流水线全局变量中补充Docker客户端连接配置,关闭dind的TLS校验(内部CI网络环境下该配置无安全风险),同时指定overlay2存储驱动提升构建稳定性。
  • 修正docker login命令的换行问题,将仓库地址参数和登录命令放在同一行。

修复后的完整可用配置:

stages:
  - build

variables:
  IMAGE_TAG: $CI_REGISTRY_IMAGE/commits:$CI_COMMIT_SHA
  DOCKER_HOST: tcp://docker:2375
  DOCKER_TLS_CERTDIR: ""
  DOCKER_DRIVER: overlay2

build-docker-image:
  stage: build
  tags:
    - docker
  image: docker:19.03.12
  services:
    - docker:19.03.12-dind
  before_script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  script:
    - docker build -t $IMAGE_TAG .
    - docker push $IMAGE_TAG
  only:
    - main
补充说明
  • 若使用GitLab官方提供的共享Runner,默认已开启特权模式,无需手动调整Runner配置。
  • 若后续升级Docker版本到20.10+且需要保留TLS认证,可移除DOCKER_TLS_CERTDIR: ""配置,将dind服务的证书目录挂载到Job容器即可,整体配置复杂度更高,无特殊要求优先使用无TLS的简化配置。
  • 不要手动覆盖GitLab自动注入的CI_REGISTRY、CI_REGISTRY_USER、CI_REGISTRY_PASSWORD内置变量,避免镜像仓库登录失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:24:58