`docker context create aci` `--location` 参数似乎无效

`docker context create aci` `--location` argument seems to have no effect

当使用 docker compose 将容器组部署到 Azure 容器实例时,出现在为 aci docker 上下文创建 docker context create aci... 时指定的 --location 参数没有效果。

我正在关注 these azure instructions 以使用 docker compose with azure container instances 和 this docker documentation 显示 docker context create 命令的附加参数

重新制作的步骤

先决条件:

Azure CLI

λ az version
{
  "azure-cli": "2.22.1",
  "azure-cli-core": "2.22.1",
  "azure-cli-telemetry": "1.0.6",
  "extensions": {}
}

Docker

λ docker-compose --version
docker-compose version 1.29.0, build 07737305

Docker撰写

λ docker --version
Docker version 20.10.5, build 55c4c88

步骤:

  1. 通过 cli 登录 azure az login
  2. 使用 azure docker login azure
  3. 验证 docker
  4. 在特定位置创建 azure 资源组az group create -l uksouth -n test-aci-ctx-group
  5. 创建一个 docker 上下文指定与资源组位置不同的位置 docker context create aci aci-context-eastus --resource-group test-aci-ctx-group --location eastus
  6. 显示有关新上下文的信息。 docker context inspect aci-context-eastus
  7. 预期结果:绑定到docker context create命令指定为--location的位置的上下文,即eastus
  8. 实际结果:上下文绑定到与 azure 资源组相同的位置,即 uksouth
λ docker context inspect aci-context-eastus
[
    {
        "Name": "aci-context-eastus",
        "Metadata": {
            "Description": "test-aci-ctx-group@uksouth",
            "Type": "aci"
        },
        "Endpoints": {
            "aci": {
                "Location": "uksouth",
                "ResourceGroup": "test-aci-ctx-group",
                "SubscriptionID": "xxxxxxxxxxxxxxxxxxx"
            },
            "docker": {
                "SkipTLSVerify": false
            }
        },
        "TLSMaterial": {},
        "Storage": {
            "MetadataPath": "xxxx",
            "TLSPath": "xxxx"
        }
    }
]

此问题的最终表现是我无法在 azure 中创建容器组,因为我在无法更改的资源组上下文中工作,但资源组位于可以更改的位置不支持 Azure 容器实例。 当我尝试在我 认为 我在 支持 天蓝色容器实例的位置创建的 aci 上下文中发出 docker-compose up 命令时,我收到一个位置不受支持的错误,列出了资源组的位置,而不是我为 docker aci 上下文指定的位置。

我是否误解了 --location 参数的用途?

我知道你可以混合和匹配容器实例和资源组之间的位置,因为我能够通过 azure cli 创建一个容器实例,其位置与它链接到的资源组。

你误解了步骤。参数需要这样使用:

docker context create aci --location "eastus"

因此您不需要先创建资源组。当您这样做时,该组已经在特定位置创建,您无法使用 docker-compose 命令更改它。

你有两个选择。一种是使用您想要的位置创建资源组,例如,位置“eastus”。或者创建参数--location "eastus"没有名字的资源组