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

Azure Pipeline Windows代理中PowerShell脚本无法运行docker compose

问题描述

执行脚本:

cd $(Build.SourcesDirectory)
docker compose up

报错信息:

##[error]error during connect: this error may indicate that the docker daemon is not running: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.project%3Ddmdinference%22%3Atrue%7D%7D": open //./pipe/docker_engine: Access is denied.

问题根源:Docker Desktop由个人用户账户启动,但流水线通过系统账户运行,导致系统账户无权限访问Docker引擎的管道。

解决方案
  • 给系统账户添加Docker管道访问权限

    1. 打开「计算机管理」,依次进入「系统工具」→「本地用户和组」→「用户」,确认流水线使用的系统账户名称(通常为NT AUTHORITY\SYSTEM)。
    2. 以管理员身份打开命令提示符,执行以下命令授予权限:
      icacls "//./pipe/docker_engine" /grant "NT AUTHORITY\SYSTEM:F"
      
      若系统账户不是NT AUTHORITY\SYSTEM,替换为实际账户名即可。
  • 配置Docker Desktop允许远程访问(非加密方式,仅适合信任环境)

    1. 打开Docker Desktop设置,进入「设置」→「Docker Engine」,添加"hosts": ["tcp://localhost:2375", "npipe://"]配置,保存后重启Docker Desktop。
    2. 在流水线脚本中添加环境变量配置:
      set DOCKER_HOST=tcp://localhost:2375
      cd $(Build.SourcesDirectory)
      docker compose up
      
  • 切换至系统账户启动Docker Desktop
    用流水线使用的系统账户登录Windows,手动启动Docker Desktop,确保Docker服务在该账户上下文运行,流水线即可直接访问Docker引擎。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 19:06:06