首页 > 解决方案 > Azure Batch 拒绝在 docker 支持节点上运行 docker 任务

问题描述

我有一个带有支持 Docker 的节点的 Azure Batch 池。也就是说,操作系统提供的是MicrosoftWindowsServer WindowsServer 2016-Datacenter-with-Containers

我按照建议创建了一个任务:

private static CloudTask CreateTask(string id, string commandLine)
{
    var autoUserSpec = new AutoUserSpecification(elevationLevel: ElevationLevel.Admin);
    var containerSettings = new TaskContainerSettings(_imageName);
    var task = new CloudTask(id, commandLine)
    {
        UserIdentity = new UserIdentity(autoUserSpec),
        ContainerSettings = containerSettings,
    };

    return task;
}

当任务运行时,它完成并出现错误ContainerPoolNotSupported , The compute node does not support container feature

这根本不符合逻辑。当我连接到节点时,我看到 docker 在那里,图像已预先安装,因此我什至可以立即运行容器。该任务几乎立即完成,因此 Azure Batch 很可能只是注意到容器设置并出于某种原因抛出。

有什么解决方法吗?Google 为错误名称提供了 0 个参考。

标签: azuredockercontainersazure-batch

解决方案


如果没有您如何创建池的上下文,这个答案是不确定的。但很可能您没有在CloudPool对象的VirtualMachineConfiguration上指定ContainerConfiguration 。

有关在 Azure Batch 上运行容器工作负载的教程,请参阅本指南


推荐阅读