我目前正在测试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.
如果我不提供端口,则无法登录注册表。 我在做什么错了?
答案 0 :(得分:1)
从私有容器注册表创建Azure容器实例时,应从Internet访问容器注册表,至少Azure可以访问它,而不仅仅是可以从私有网络访问。
如果没有,建议您将映像推送到Azure Container Registry,然后从中创建Azure容器实例。这也是一个私人注册表。它具有出色的access control。
如果您还有其他问题,请告诉我。我很高兴提供更多帮助。
更新
Azure模板中imageRegistryCredentials
的属性的定义,也与yaml文件中的含义相同。它不需要端口,仅需要服务器名称。如果添加端口,我会再次出现您收到的错误。
尝试仅添加注册表服务器名称而不添加如下端口:
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。