GCP VM部署Gitlab Runner运行CI时无法连接Docker daemon如何解决
问题根因
报错核心原因是gitlab-runner运行用户没有Docker套接字文件/var/run/docker.sock的访问权限,你当前的config.toml挂载配置无问题,仅需调整权限即可解决。
解决步骤
确认套接字文件权限
在GCP VM实例中执行命令查看/var/run/docker.sock的属组:sudo ls -l /var/run/docker.sock正常输出中该文件的属组为
docker。给gitlab-runner用户授权
执行如下命令将gitlab-runner用户加入docker用户组,获取Docker服务访问权限:sudo usermod -aG docker gitlab-runner如果你是通过Docker容器部署的Gitlab Runner,需要进入对应容器内部执行上述命令。
重启Gitlab Runner生效配置
宿主机直接部署的Runner执行:sudo gitlab-runner restart容器化部署的Runner执行:
docker restart <你的Gitlab Runner容器ID/名称>验证配置生效
执行如下命令确认权限配置正常:sudo su - gitlab-runner -c "docker ps"若命令可以正常输出容器列表,说明配置生效,重新运行CI作业即可消除报错。
临时验证方案(不建议长期使用)
如需快速排查问题,可临时放宽套接字文件权限:
sudo chmod 666 /var/run/docker.sock
该配置会在Docker服务重启后失效,仅用于临时测试,生产环境请使用上述用户组配置方案。
内容的提问来源于stack exchange,提问作者A.S. SAMARASINGHE
相关产品推荐
相关产品推荐

