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

Azure Pipeline自托管代理Docker守护进程连接失败求助

Azure DevOps自托管代理(Ubuntu18.04)执行docker run报错:无法连接Docker守护进程

我在Azure DevOps中配置了一条包含docker run命令的YAML流水线,构建阶段生成工件后,使用DockerInstaller@0任务安装Docker,但执行docker run命令时出现错误:Cannot connect to the Docker daemon at unix:///var/run/docker.sock。

流水线在微软托管代理(ubuntu-latest)上运行正常,但在我们的自托管代理(Ubuntu 18.04)上触发上述错误,希望得到相关指导。

流水线代码

- task: DockerInstaller@0
  displayName: 'Install Docker 17.09.0-ce'

- bash: |
    chmod -R 777 ./
    docker run --rm -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-baseline.py -t https://app.azurewebsites.net -g gen.conf -x zap-report.xml -r zap-report.html -J zap-report-fe.json
    true
  displayName: 'Run OWASP Zap'

相关日志

DockerInstaller@0任务日志

Verifying docker installation...
##[debug]which 'docker'
##[debug]found: '/home/linux_admin/myagent/_work/_tool/docker-stable/17.9.0-ce/x64/docker'
...
##[debug]arguments:
##[debug]   --version
/home/linux_admin/myagent/_work/_tool/docker-stable/17.9.0-ce/x64/docker --version
Docker version 17.09.0-ce, build afdb6d4

Run OWASP ZAP任务日志

========================== Starting Command Output ===========================
##[debug]which '/bin/bash'
##[debug]found: '/bin/bash'
##[debug]/bin/bash arg: /home/linux_admin/myagent/_work/_temp/19ec79e8-7fff-417f-b64a-56b66c89074c.sh
##[debug]exec tool: /bin/bash
##[debug]arguments:
##[debug]   /home/linux_admin/myagent/_work/_temp/19ec79e8-7fff-417f-b64a-56b66c89074c.sh
/bin/bash /home/linux_admin/myagent/_work/_temp/19ec79e8-7fff-417f-b64a-56b66c89074c.sh
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.

解决步骤

  • 检查Docker守护进程状态:在自托管代理机器上执行sudo systemctl status docker,确认docker daemon是否运行。若未启动,执行sudo systemctl start docker,并设置开机自启sudo systemctl enable docker。
  • 配置代理用户权限:确保运行Azure DevOps代理的用户(此处为linux_admin)加入docker用户组,执行sudo usermod -aG docker linux_admin,修改后需重新登录代理机器或重启代理服务使权限生效。
  • 明确DockerInstaller任务作用:DockerInstaller@0仅安装Docker客户端,不会自动启动Docker守护进程。微软托管代理默认已配置并启动Docker服务,而自托管代理需手动保障daemon运行状态。
  • 修复Docker Socket权限:检查/var/run/docker.sock的权限,执行ls -l /var/run/docker.sock,正常应归属docker组。若权限异常,执行sudo chmod 660 /var/run/docker.sock和sudo chown root:docker /var/run/docker.sock。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:17:33