Gitlab DIND Runner TLS相关错误 健康检查超时启动慢如何解决
问题根因
你遇到的服务启动超时核心是新版docker:dind镜像对非TLS的2375端口默认启用了强制启动延迟机制,日志中Startup is intentionally being slowed down就是该机制的提示,默认10秒的延迟超出了Gitlab Runner默认的服务健康检查阈值,最终触发超时报错。
日志中could not change group /var/run/docker.sock to docker: group docker not found属于非核心警告,不影响DIND功能正常运行,无需处理。
解决方案
方案1:继续使用非TLS模式(快速生效)
- 修改
config.toml中dind服务的启动参数,新增--tls=false主动关闭TLS校验,跳过强制延迟逻辑:
[[runners.docker.services]] name = "docker:dind" command = ["--registry-mirror", "http://192.168.1.21", "--tls=false"]
- 删除
[runners.docker]段volumes配置中的/certs/client挂载项,修改后为:
volumes = ["/cache"]
- 确认
[[runners]]段的environment配置中已经保留DOCKER_TLS_CERTDIR=""、DOCKER_HOST=tcp://docker:2375/两项配置即可。
修改完成后重启Gitlab Runner服务生效。
方案2:启用TLS模式(更安全,无安全警告)
如果接受TLS校验,可通过如下配置彻底消除安全警告同时解决超时问题:
- 移除
[[runners]]段environment配置中的DOCKER_TLS_CERTDIR=""项,将DOCKER_HOST修改为TLS专用端口:
environment = ["DOCKER_DRIVER=overlay2", "DOCKER_HOST=tcp://docker:2376/"]
- 将
[runners.docker]段的tls_verify配置改为true,保留volumes中的/certs/client挂载项即可。
验证方法
配置生效后可运行如下最简CI任务验证功能正常:
test-dind-connect: image: docker:latest script: - docker info
任务执行成功输出Docker daemon信息即表示配置生效。
内容的提问来源于stack exchange,提问作者Nico
相关产品推荐
相关产品推荐

