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

使用GitLab共享Runner构建Docker镜像时遇docker主机不存在错误求助

解决GitLab共享Runner构建Docker镜像时的“主机不存在”错误

错误原因

你碰到的dial tcp: lookup docker on XXX.XXX.XXX.XXX:XX: no such host错误,核心是Docker客户端无法连接到DinD(Docker-in-Docker)服务的docker主机,通常和共享Runner配置限制、DinD的TLS/端口设置不匹配有关。

修复方案

1. 确认共享Runner支持DinD

GitLab共享Runner默认可能未开启特权模式,而DinD必须在特权模式下运行。需要确保Runner配置包含:

  • privileged = true
  • 挂载/certs/client卷(用于TLS证书共享)

2. 调整CI配置的环境变量与版本匹配

新版DinD默认启用TLS,使用2376端口,而非旧版的2375。同时要保证Docker镜像和DinD服务版本一致,修改后的配置如下:

docker:image:
  stage: test
  image: docker:20.10.16  # 和DinD服务版本统一
  services:
    - docker:dind:20.10.16
  variables:
    DOCKER_HOST: tcp://docker:2376
    DOCKER_TLS_CERTDIR: "/certs"
  script:
    - docker info

如果需要临时关闭TLS调试,可以给DinD服务添加命令参数:

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

3. 调试网络解析

如果问题仍存在,可在script中添加网络检测命令,确认docker主机是否能被正常解析:

script:
  - nslookup docker
  - docker info

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 04:25:02