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

GitLab CI/CD流水线部署报错:无法连接unix:///var/run/docker.sock的Docker daemon

Docker连接报错排查解决步骤

1. GitLab Runner权限排查

报错本质是CI流水线执行环境下的docker客户端无法连接docker服务,和AWS实例上运行的Docker服务无关,优先排查Runner配置:

  • 若使用Shell执行器的GitLab Runner,检查运行runner进程的用户是否已加入docker用户组:
    执行命令验证:groups gitlab-runner
    若输出无docker组,执行修复命令:
    sudo usermod -aG docker gitlab-runner
    sudo systemctl restart gitlab-runner
    
  • 若使用Docker执行器的GitLab Runner,需在Runner的config.toml配置中添加宿主机docker套接字挂载,示例配置:
    [[runners]]
      executor = "docker"
      [runners.docker]
        volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
        privileged = true
    

2. CI配置执行环境排查

  • 检查deploy-api-staging阶段使用的基础镜像是否预装docker客户端,若使用无docker的轻量镜像(如alpine),需在脚本开头添加docker客户端安装步骤,或直接更换为docker:latest作为阶段镜像。
  • 若使用Docker-in-Docker(DinD)模式执行流水线,需在CI配置中声明docker:dind服务,并配置DOCKER_HOST环境变量为tcp://docker:2376,避免客户端默认走unix套接字连接。

3. 脚本执行上下文排查

  • 若流水线是通过SSH远程连接到AWS实例执行脚本,需确认SSH登录的远程用户已加入AWS实例的docker用户组,可在脚本开头添加测试命令验证远程执行环境:
    whoami
    docker info
    ls -l /var/run/docker.sock
    
  • 若测试命令显示docker.sock文件存在但docker info报错,即为用户权限问题,给远程执行用户添加docker组权限即可修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:06:01