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

Azure Pipeline使用Docker镜像作为构建代理时遇权限拒绝错误求助

解决Azure DevOps Server 2019构建代理访问Docker Daemon的权限问题

看了你的问题描述,核心是构建代理服务账号没有权限访问Windows上的Docker daemon,而且自动创建的docker-users组没出现,下面是一步步的解决步骤:

1. 手动创建docker-users本地用户组

因为Docker安装后自动创建组失败,我们手动来完成:

  • 打开计算机管理(右键此电脑→管理)
  • 展开本地用户和组→组
  • 右键空白处→新建组
  • 组名填docker-users,描述可以写Docker daemon访问权限组,点击创建

或者用PowerShell命令(以管理员身份运行):

net localgroup docker-users /add

2. 将构建代理的服务账号加入docker-users组

Azure DevOps构建代理默认使用类似NT SERVICE\vstsagent.{池名}.{代理名}的服务账号运行,你需要先找到对应的账号:

  • 打开服务(Win+R输入services.msc)
  • 找到你的Azure DevOps代理服务,名字一般是Azure Pipelines Agent ({池名}-{代理名})
  • 右键→属性→登录标签,查看运行身份的账号

然后把这个账号加入docker-users组:

  • 回到计算机管理的组列表,找到docker-users组,右键→添加到组
  • 点击添加,输入刚才查到的服务账号,点击检查名称确认后添加

或者用PowerShell命令(替换<代理服务账号>为实际账号):

net localgroup docker-users "<代理服务账号>" /add

3. 配置Docker Daemon允许非管理员访问

修改Docker的配置文件来开启非管理员访问:

  • 在C:\ProgramData\Docker\config目录下创建或编辑daemon.json文件(如果没有这个目录先创建)
  • 添加以下内容:
{
  "hosts": ["npipe:////./pipe/docker_engine", "tcp://0.0.0.0:2375"]
}

注意:npipe是Windows管道协议,保留它确保Docker CLI能正常连接;tcp部分可选,但如果需要远程访问可以保留,生产环境建议启用TLS加密,这里先优先解决权限问题。

4. 重启相关服务

  • 重启Docker服务:
Restart-Service Docker
  • 重启Azure DevOps构建代理服务:
    在服务里找到代理服务,右键→重启,或者用PowerShell:
Restart-Service "Azure Pipelines Agent ({池名}-{代理名})"

5. 验证权限是否生效

以构建代理服务账号的身份运行Docker命令测试:

  • 打开命令提示符,用runas命令切换到代理账号:
runas /user:<代理服务账号> cmd.exe
  • 在新打开的命令窗口中运行:
docker version

如果能正常返回Server和Client的版本信息,说明权限配置成功了。

额外检查点

  • 确认构建代理的池是Default Windows,且该池的代理确实运行在你配置的Windows服务器上
  • 检查Docker EE的版本是否兼容Azure DevOps Server 2019(建议使用Docker EE 18.09及以上版本,和2019的兼容性更好)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 21:42:31