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

AWS Runner执行CI任务时docker:2375连接报错no such host如何解决

问题根因

你遇到的报错是CI任务无法解析docker主机名,无法连接DinD服务的Docker API端口,常见于GitLab CI DinD模式下服务别名未生效、Runner配置错误两种场景。

可行解决方案

方案1:显式指定DinD服务别名(保留DinD模式)

直接修改你的CI配置的services段,显式绑定别名到docker,确保主机名能正确解析:

services:
  - name: docker:dind
    alias: docker

修改后验证:

  • 确认DOCKER_TLS_CERTDIR: ""配置保留,使用非加密2375端口通信
  • 修改Runner配置后务必执行sudo gitlab-runner restart重启服务生效
  • 可在before_script中添加nslookup docker验证解析是否正常

方案2:改用宿主机Docker套接字(更稳定,推荐AWS Runner场景)

该方案完全放弃DinD模式,直接复用AWS Runner宿主机的Docker服务,无解析问题,性能更高:

  1. 登录部署GitLab Runner的AWS EC2实例,执行以下配置:
    • 确保EC2已安装Docker,执行usermod -aG docker gitlab-runner给Runner用户赋Docker权限
    • 编辑Runner配置文件/etc/gitlab-runner/config.toml,找到runners.docker段,修改volumes配置:
      volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
      
    • 执行sudo gitlab-runner restart重启Runner生效
  2. 修改你的CI配置:
    • 删除DOCKER_HOST、DOCKER_DRIVER、DOCKER_TLS_CERTDIR三个变量
    • 删除整个services段,不需要再加载DinD服务

两种方案任选其一都可以解决你遇到的域名解析报错,优先推荐方案2,避免DinD带来的性能损耗和各类网络兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:48:04