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

GitLab Kubernetes Runner执行Docker构建时连接Docker守护进程失败求助

解决GitLab CI/CD Kubernetes执行器下Docker Daemon连接失败问题

看起来你遇到了Kubernetes执行器下GitLab CI/CD使用docker-in-docker(dind)时无法连接Docker daemon的问题,这是个很常见的场景,我来帮你一步步解决:

问题根源

当使用Kubernetes执行器运行docker:dind服务时,Docker daemon默认监听TCP端口(而非主机的unix socket),同时运行Docker daemon需要容器拥有特权模式权限,这两个条件没满足就会出现你看到的错误。

具体解决步骤

1. 调整.gitlab-ci.yml配置,添加必要环境变量

需要指定Docker客户端连接到docker:dind服务的TCP地址,同时如果是新版Docker镜像,还需要禁用TLS(测试环境快速验证用,生产环境建议配置证书):

# This file is a template, and might need editing before it works on your project.
# Official docker image.
image: docker:latest
services:
  - docker:dind
# 添加环境变量,指定Docker daemon地址并禁用TLS(测试用)
variables:
  DOCKER_HOST: tcp://docker:2375
  DOCKER_TLS_CERTDIR: ""
before_script:
  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
build-master:
  stage: build
  script:
    - docker build --pull -t "$CI_REGISTRY_IMAGE" .
    - docker push "$CI_REGISTRY_IMAGE"
  only:
    - master
build:
  stage: build
  script:
    - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" .
    - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG"
  except:
    - master

2. 配置GitLab Runner为特权模式

Docker daemon需要特权权限才能在容器内正常运行,所以必须确保你的GitLab Runner在Kubernetes中以特权模式启动:

如果你用Helm安装Runner

修改Helm的values.yaml文件,添加/修改以下配置:

runners:
  privileged: true

然后执行Helm升级命令应用配置:

helm upgrade --install gitlab-runner gitlab/gitlab-runner -f values.yaml

如果你手动配置Runner

找到Runner的config.toml文件,在Kubernetes执行器部分添加privileged = true:

[[runners]]
  executor = "kubernetes"
  [runners.kubernetes]
    privileged = true

然后重启GitLab Runner的Pod让配置生效。

3. 验证配置

重新触发流水线,检查Job日志:

  • 确认DOCKER_HOST变量已正确注入
  • 可以通过kubectl describe pod <runner-job-pod-name>查看Pod的SecurityContext,确认Privileged字段为true

额外说明

生产环境中不建议禁用TLS,建议配置docker:dind的TLS证书来保证通信安全,你可以参考GitLab官方文档的相关配置来实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:18:26