配置Azure ContainerInstance以使用自托管注册表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置Azure ContainerInstance以使用自托管注册表相关的知识,希望对你有一定的参考价值。

我正在测试Azure,我试图部署自己的docker镜像。该映像托管在我的VServer上的注册表中。注册表使用端口5000.当我尝试使用正确的imageRegistryCredentials提供.yaml文件时,它会失败。

Image registry credentials:
- server: my.server.com:5000
  username: me
  password: abc123

az容器创建-g我的组--file myconainer.yaml返回:

The server 'my.server.com:5000' in the 'imageRegistryCredentials' of container group 'MyContainerGroup' is Invalid. 
It should be a valid hostname without protocol.

如果我不提供端口,我无法登录到注册表。我究竟做错了什么?

答案

当您从私有容器注册表创建Azure容器实例时,应该从Internet访问容器注册表,至少Azure可以访问它,而不仅仅是可以从专用网络访问。

如果没有,我建议您可以将图像推送到Azure Container Registry,然后从中创建Azure容器实例。它也是一个私人注册表。它有很棒的access control

如果您有更多问题,请告诉我。我很乐意提供更多帮助。

更新

在Azure模板中定义imageRegistryCredentials的属性,它也与yaml文件中的含义相同。它不需要端口,只需要服务器名称。如果添加端口,我可以重新出现你得到的错误。

enter image description here

尝试添加没有端口的注册表服务器名称,如下所示:

apiVersion: 2018-10-01
location: eastus
name: azureContainerGroup
properties:
  containers:
  - name: aci-tutorial-app
    properties:
      image: charlesacr.azurecr.io/nginx:v1
      resources:
        requests:
          cpu: 1
          memoryInGb: 1.5
      ports:
      - port: 80
  osType: Linux
  ipAddress:
    type: Public
    ports:
    - protocol: tcp
      port: '80'
  imageRegistryCredentials:
    - server: charlesacr.azurecr.io
      username: charlesACR
      password: xxxxxxxxxx
tags: null
type: Microsoft.ContainerInstance/containerGroups

更新2

最后,通过测试,我发现Azure容器实例目前不支持带有证书的私有注册表,它只支持使用用户名和密码的私有注册表。也许它将在未来支持,但现在不支持。因此,如果要使用私有注册表,则需要删除证书身份验证。

您可以随时通过以下链接提出反馈:https://feedback.azure.com/forums/602224-azure-container-instances

以上是关于配置Azure ContainerInstance以使用自托管注册表的主要内容,如果未能解决你的问题,请参考以下文章

为啥不能配置 Azure 诊断以通过新的 Azure 门户使用 Azure 表存储?

Azure Virtual Desktop-3-配置Azure文件共享及配置用户配置文件漫游

使用 Python 管理 Azure:基础配置

通过托管标识从 c# Azure 函数检索配置值的 Azure 应用程序配置不起作用

具有输入绑定的 Azure 函数的 Azure 事件中心存储容器配置

Azure CLI 如何安装和配置Azure CLI