Azure IoT Edge入门(4)实战将“识别戴口罩”算法部署到边缘(2)-ACR准备

本案例分三节内容介绍:

  1. 将Custom Vision 模型导出成linux 容器;在本地build/run,完成本地测试;
  2. 准备Azure Container Registry, 将本地Build好的镜像push到ACR里;
  3. 使用IoT Edge将 ACR里准备好的 镜像部署到IoT Edge里,在EDGE设备上调用本地的算法;

视频讲解:

您可以在B站观看视频讲解:https://www.bilibili.com/video/av93806553/

或在本站观看:

 

图文讲解:

创建容器注册表

选择“创建资源” ,在“新建” 选项卡的搜索筛选器中键入“容器注册表”或英文下输入“Container Registry”

在“注册表名称”和“资源组”中输入值 。 注册表名称在 Azure 中必须唯一,并且包含 5-50 个字母数字字符。

 

 

显示“部署成功”消息时,请在门户中选择容器注册表 。

 

记下“登录服务器”的值。 结合 Azure CLI 和 Docker 使用注册表时,请在以下步骤中使用此值。

登录到注册表

在推送和拉取容器映像之前,必须登录到 ACR 实例。 在操作系统中打开命令外壳,然后在 Azure CLI 中使用 az acr login 命令。

 

其中 Azure CLI 下载地址:https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest

az acr login --name <acrName>

当我们第一次执行的时候,可能会遇到如下的错误:

第一个错误是没有安装或启动Docker,请自行下载安装运行即可;

第二个错误是没有登录过 Azure CLI,需要先登登录。

当我们按照提示输入az login,并跳转到到https://login.microsoftonline.com/common/oauth2/authorize?response_type=code 之类的网址时,该地址针对global的Azure是正确的。

对于中国区的Azure,需要先执行 

az cloud set --name AzureChinaCloud 

跳转到如图类似的网址(https://login.partner.microsoftonline.cn/common/oauth2/authorize)认证地址才是中国区登录。

 

再次执行 az acr login --name <acrName>,该命令在完成后返回 Login Succeeded

将映像推送到注册表

要将映像推送到 Azure 容器注册表,首先必须具有一个映像。 本例中我们使用上节内容中编译好的sean/mask:v1

将映像推送到注册表之前,必须使用 ACR 登录服务器的完全限定的名称进行标记。 登录服务器名称采用 <registry-name>.azurecr.cn(全小写)格式。

使用 docker tag 命令标记映像。 使用 ACR 实例的登录服务器名称替换 <acrLoginServer>

docker tag sean/mask:v1 seanyutestacr.azurecr.cn/mask:v1

 

最后,使用 docker push 将映像推送到 ACR 实例。 使用 ACR 实例的登录服务器名称替换 <acrLoginServer>。 此示例创建 hello-world 存储库,其中包含 hello-world:v1 映像。

docker push seanyutestacr.azurecr.cn/mask:v1

 

在portal查看容器映像

若要列出注册表中的映像,请在门户中导航到注册表并选择“存储库”,然后选择使用 docker push 创建的存储库 。

在本示例中,选择 hello-world 存储库,并可在“标记”下看到 v1 标记的映像 。

 

从注册表运行映像,注意本例子更换了一台全新的虚拟机做测试

 全新计算机尚未登录azure acr,则可以通过如下方式登录:

docker login -u <acr username> -p <acr password>  <acr url>

现在,可以使用 docker run 从容器注册表拉取容器映像:

docker pull seanyutestacr.azurecr.cn/mask:v1

在本地运行容器,然后在浏览器访问测试:

docker run -p 127.0.0.1:81:80 -d seanyutestacr.azurecr.cn/mask:v1

在浏览器中输入127.0.0.1:81或localhost:81

 

 

Azure IoT Edge 入门系列其他文章,请见《Azure 智能边缘 之 Azure IoT Edge 十分钟入门系列文章目录