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


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

Azure IoT Edge入门(5)实战将“识别戴口罩”算法部署到边缘(2)-ACR准备_第1张图片

本案例分三节内容介绍:

  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/

或在本站观看:https://www.51azure.cloud/post/2020/3/5/azure-iot-edge52acr


 

图文讲解:

创建容器注册表

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

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

在“注册表名称”和“资源组”中输入值 。 注册表名称在 Azure 中必须唯一,并且包含 5-50 个字母数字字符。Azure IoT Edge入门(5)实战将“识别戴口罩”算法部署到边缘(2)-ACR准备_第3张图片

 

 

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

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

 

记下“登录服务器”的值。 结合 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 

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

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

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

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

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

1583551463544-50a5d906-fc16-4788-b8db-1ddbdffe9212.png

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

az cloud set --name AzureChinaCloud

Azure IoT Edge入门(5)实战将“识别戴口罩”算法部署到边缘(2)-ACR准备_第6张图片

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

 

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

1583551463554-284b478c-1acb-442b-ac23-ed8e4b58c891.png

将映像推送到注册表

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

Azure IoT Edge入门(5)实战将“识别戴口罩”算法部署到边缘(2)-ACR准备_第7张图片

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

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

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

 

1583551463560-559dbf00-9005-426f-96fe-abaa218d8831.png

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

docker push seanyutestacr.azurecr.cn/mask:v1

Azure IoT Edge入门(5)实战将“识别戴口罩”算法部署到边缘(2)-ACR准备_第8张图片

 

在portal查看容器映像

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

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

Azure IoT Edge入门(5)实战将“识别戴口罩”算法部署到边缘(2)-ACR准备_第9张图片

 

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

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

docker login -u  -p   

Azure IoT Edge入门(5)实战将“识别戴口罩”算法部署到边缘(2)-ACR准备_第10张图片

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

docker pull seanyutestacr.azurecr.cn/mask:v1

Azure IoT Edge入门(5)实战将“识别戴口罩”算法部署到边缘(2)-ACR准备_第11张图片

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

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

Azure IoT Edge入门(5)实战将“识别戴口罩”算法部署到边缘(2)-ACR准备_第12张图片