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

时间:2019-04-05 17:03:33

标签: azure azure-container-instances

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

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

az容器create -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.

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

1 个答案:

答案 0 :(得分:1)

从私有容器注册表创建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

Update-2

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

您始终可以通过以下链接提出您的反馈意见: https://feedback.azure.com/forums/602224-azure-container-instances