Azure DevOps 托管代理是 docker 容器吗?

Is Azure DevOps hosted agent a docker container?

azure agent通常使用如下,命名为pool,并带有VM image title

pool:
  vmImage: 'ubuntu-16.04'

Azure DevOps 服务中的托管代理是否可以被视为 Azure DevOps 服务管理的 VM 中的容器?

您的 Yaml 将在 VM运行

Azure 管道可以 运行 在 VM 或容器中。
每次 运行 一个 Azure 管道,你都会得到一个新的虚拟机。虚拟机使用一次后即被丢弃。 Microsoft 托管的代理可以直接在 VM 或容器中 运行 作业。

一个容器Yaml

pool:
  vmImage: 'ubuntu-16.04'

container: ubuntu:16.04

steps:
- script: printenv

这告诉系统从 Docker Hub 获取标记为 16.04 的 ubuntu 图像,然后启动容器。当printenv命令运行s时,会发生在ubuntu:16.04容器内。

Can a hosted agent in azure DevOps service be considered as a container in VM managed by azure DevOps service?

严格地说,,你不能。

vmImage的关键字不指向容器,它只是一个虚拟机的镜像,VM的一个副本。此副本包含一个 OS、数据文件和一些我们预先配置的内置应用程序,以方便用户使用。

如果您想 Container jobs 与托管代理一起做一些事情,这里可以使用 Eldho 的建议。注意:截至今天,容器作业仅支持 YAML 管道。

或者,您可以从 Docker hub 获取我们的容器化代理镜像。但这是一种自我代理类型。