GitHub Enterprise工作流中docker-run-action无法连接Docker守护进程求助
解决Docker run步骤无法连接daemon的问题
针对你在自托管Runner上遇到的docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock错误,提供以下几种可行方案:
1. 确保自托管Runner拥有Docker权限
在Runner所在的服务器上,执行以下命令将Runner用户加入docker组,重启Runner服务后生效:
usermod -aG docker $USER sudo systemctl restart github-runner.service
2. 显式挂载Docker Socket到run容器
修改addnab/docker-run-action步骤,添加options参数挂载Docker socket,确保容器能访问宿主的Docker daemon:
- name: Run some commands in the container uses: addnab/docker-run-action@v3 with: image: registry.private/user/image run: whoami && pwd options: -v /var/run/docker.sock:/var/run/docker.sock
3. 改用Docker Buildx直接运行测试(推荐)
由于你使用了docker-container驱动的Buildx,构建的镜像仅存在于Buildx的builder实例中,本地Docker可能无法直接读取。可以用Buildx的run命令直接测试镜像:
- name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 with: driver: docker-container - name: Run tests with Buildx run: | docker buildx run ${{ steps.buildx.outputs.name }} registry.private/user/image whoami && pwd
4. 切换Buildx驱动为docker
如果不需要docker-container驱动的特性,可以改为使用docker驱动,构建的镜像会直接出现在本地Docker镜像列表中,无需额外配置即可运行:
- name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: driver: docker
内容的提问来源于stack exchange,提问作者millerluki
相关产品推荐
相关产品推荐

