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

AKS上Azure DevOps自托管代理运行Docker构建任务无法连接daemon问题

可行解决方案

核心诱因

该报错在AKS 1.19.11环境下通常由两个问题导致:一是AKS 1.19.x版本默认节点运行时已切换为containerd而非Docker,节点上默认不存在/var/run/docker.sock文件;二是即便节点存在该文件,挂载后容器内运行代理的用户也没有访问sock文件的权限。

分场景处理方案

场景1:节点运行时为containerd

  • 先登录AKS节点执行ls /var/run/ | grep docker.sock,如果无输出则说明节点运行时为containerd,可选择两种方案处理:
    • 新建使用Docker运行时的节点池,将自托管代理调度到新节点池运行
    • 放弃Docker@2任务,替换为Kaniko、buildah等无需Docker daemon的镜像构建工具,无需挂载主机sock文件即可完成镜像构建,安全性更高

场景2:节点存在docker.sock文件但无访问权限

主机上/var/run/docker.sock默认属组为docker,GID通常为999,而Azure DevOps代理容器默认以非root的azdo用户运行,没有该文件的访问权限,修改代理Deployment配置添加补充组权限即可:

spec:
  securityContext:
    # 999为节点docker组GID,可执行`getent group docker | cut -d: -f3`确认后替换
    supplementalGroups: [999]
  containers:
  - name: azdo-agent
    # 保留原有的镜像、env等配置
    volumeMounts:
    - mountPath: /var/run/docker.sock
      name: docker-volume
  volumes:
  - name: docker-volume
    hostPath:
      path: /var/run/docker.sock
  • 临时验证可给容器添加securityContext: privileged: true配置,确认是权限问题后切回补充组方案即可,生产环境不建议长期使用特权容器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:09:03