You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过docker.io镜像创建Azure容器实例问题求助

Azure流水线创建容器实例时Docker Hub RegistryErrorResponse错误排查方案

我们的Azure YAML流水线用于从Docker Hub创建容器实例,7月1日运行正常,但7月2日开始抛出以下错误:

ERROR: (RegistryErrorResponse) An error response is received from the docker registry 'docker.io'. Please retry later.
Code: RegistryErrorResponse
Message: An error response is received from the docker registry 'docker.io'. Please retry later.

使用的AzureCLI@2任务配置如下:

- task: AzureCLI@2
  name: CreateContainer
  displayName: Create container
  inputs:
    azureSubscription: ${{ parameters.subscription }}
    scriptType: bash
    scriptLocation: inlineScript
    inlineScript: |
      az container create \
        --resource-group '${{ parameters.resourceGroup }}' \
        --name '${{ parameters.name }}' \
        --image 'docker.io/mockoon/cli:latest' \
        --ports ${{ parameters.port }} \
        --location '${{ parameters.location }}' \
        --dns-name-label '${{ parameters.name }}' \
        --command-line "mockoon-cli start --data '$(publicUrl)' --port ${{ parameters.port }}"

已尝试更换镜像标签(如8.2.0、8.1.1),结果相同;且Docker状态页面显示所有系统正常运行。

以下是可行的排查和解决方法:

  • 检查Azure区域的Docker Hub访问状态
    即使Docker Hub全局状态正常,部分Azure区域可能存在临时网络波动或访问限制。可以尝试切换到其他Azure区域运行流水线,或查看对应区域的Azure服务状态公告。

  • 添加Docker Hub认证信息
    Docker Hub对未认证请求有严格的速率限制,近期请求量上升可能触发限制。在az container create命令中添加认证参数,提升请求配额:

    az container create \
      --resource-group '${{ parameters.resourceGroup }}' \
      --name '${{ parameters.name }}' \
      --image 'docker.io/mockoon/cli:latest' \
      --ports ${{ parameters.port }} \
      --location '${{ parameters.location }}' \
      --dns-name-label '${{ parameters.name }}' \
      --command-line "mockoon-cli start --data '$(publicUrl)' --port ${{ parameters.port }}"
      --registry-login-server docker.io \
      --registry-username <你的Docker Hub用户名> \
      --registry-password <你的Docker Hub访问令牌>
    
  • 改用Azure容器注册表(ACR)代理镜像
    将Docker Hub镜像同步到ACR,通过ACR拉取镜像可绕过Docker Hub的直接访问限制,同时利用Azure内部网络的稳定性:

    1. 创建ACR实例
    2. 执行az acr import --name <你的ACR名称> --source docker.io/mockoon/cli:latest --image mockoon/cli:latest导入镜像
    3. 修改流水线中--image参数为你的ACR名称.azurecr.io/mockoon/cli:latest
  • 添加脚本重试逻辑
    临时网络波动可能导致单次请求失败,在脚本中添加循环重试:

    until az container create \
      --resource-group '${{ parameters.resourceGroup }}' \
      --name '${{ parameters.name }}' \
      --image 'docker.io/mockoon/cli:latest' \
      --ports ${{ parameters.port }} \
      --location '${{ parameters.location }}' \
      --dns-name-label '${{ parameters.name }}' \
      --command-line "mockoon-cli start --data '$(publicUrl)' --port ${{ parameters.port }}"; do
      echo "创建失败,10秒后重试..."
      sleep 10
    done
    
  • 升级Azure CLI版本
    旧版本Azure CLI可能存在兼容性问题,在任务开头添加升级命令:

    az upgrade --yes
    

内容的提问来源于stack exchange,提问作者dq101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:55:57