首页 > 解决方案 > Azure 容器部署 - “操作失败,状态为 200:资源状态失败”

问题描述

在 Azure 中,我们尝试使用带有准备好的 YAML 的 Azure 容器实例来创建容器。在我们执行 az container create 命令的机器上,我们可以在输入密码后成功登录到我们的私有注册表(例如JFrog Artifactory上的 fa-docker-snapshot-local.docker.comp.dev ),我们也可以 docker pull 它

docker login fa-docker-snapshot-local.docker.comp.dev -u svc-faselect
Login succeeded

这样我们就可以拉取成功了,镜像路径和手动 docker pull 的时候一样:

   image: fa-docker-snapshot-local.docker.comp.dev/fa/ads:test1 

我们有用于部署的 YAML 文件,并尝试使用来自 SAME 服务器的 az 命令创建容器。在 YAML 文件中,我们设置了相同的注册表信息:服务器、用户名和密码以及相同的图像

az container create --resource-group FRONT-SELECT-NA2 --file ads-azure.yaml

当我们尝试执行此命令时,需要 30 分钟,然后显示该消息:“部署失败。操作失败,状态为 200:资源状态失败”

完整的 Yaml:

apiVersion: '2019-12-01'
location: eastus2
name: ads-test-group
properties:
  containers:
  - name: front-arena-ads-test
    properties:
      image: fa-docker-snapshot-local.docker.comp.dev/fa/ads:test1
      environmentVariables:
        - name: 'DBTYPE'
          value: 'odbc'
      command:
      - /opt/front/arena/sbin/ads_start
      - ads_start
      - '-unicode'
      - '-db_server test01'                        
      - '-db_name HEDGE2_ADM_Test1'                        
      - '-db_user sqldbadmin'                              
      - '-db_password pass'                   
      - '-db_client_user HEDGE2_ADM_Test1'                
      - '-db_client_password Password55'                
      ports:
      - port: 9000
        protocol: TCP
      resources:
        requests:
          cpu: 1.0
          memoryInGB: 4
      volumeMounts:
      - mountPath: /opt/front/arena/host
        name: ads-filesharevolume
  imageRegistryCredentials: # Credentials to pull a private image
  - server: fa-docker-snapshot-local.docker.comp.dev
    username: svcacct-faselect
    password: test
  ipAddress:
    type: Private
    ports:
    - protocol: tcp
      port: '9000'
  volumes:
  - name: ads-filesharevolume
    azureFile:
      sharename: azurecontainershare
      storageAccountName: frontarenastorage
      storageAccountKey: kdUDK97MEB308N=
  networkProfile:
    id: /subscriptions/746feu-1537-1007-b705-0f895fc0f7ea/resourceGroups/SELECT-NA2/providers/Microsoft.Network/networkProfiles/fa-aci-test-networkProfile
  osType: Linux
  restartPolicy: Always
tags: null
type: Microsoft.ContainerInstance/containerGroups

你能帮助我们为什么会发生这个错误吗?谢谢

标签: azuredockercontainersazure-container-instancesazure-container-registry

解决方案


据我所知,你的 YAML 文件没有问题,我只能给你一些可能的原因。

  1. 确保配置正确,服务器 URL、用户名和密码,还包括图像名称和标签;
  2. 从 9000 更改端口'9000' into ,我的意思是删除双引号;
  3. 看一下Note,可能挂载卷导致容器崩溃。然后你需要将文件共享挂载到一个新文件夹,我的意思是以前不存在的新文件夹。

推荐阅读