Azure IoT Edge入門(5)實戰將“識別戴口罩”算法部署到邊緣(2)-ACR準備

Azure IoT Edge入門(5)實戰將“識別戴口罩”算法部署到邊緣(2)-ACR準備


Azure IoT Edge入門(4)實戰將“識別戴口罩”算法部署到邊緣(2)-ACR準備

1583551464956-537bcf8f-1dc1-46cc-9f53-b38c12767789.png

本案例分三節內容介紹:

  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”

1583551463519-d67a941e-22a4-4860-ac02-325b7b7c67b0.png

在“註冊表名稱”和“資源組”中輸入值 。 註冊表名稱在 Azure 中必須唯一,並且包含 5-50 個字母數字字符。1583551464943-ce0c216f-1da3-4fa6-8874-4c1952e36274.png

 

 

顯示“部署成功”消息時,請在門戶中選擇容器註冊表 。

1583551463553-62bdda52-059c-4f5c-ba38-b16b33eddc4f.png

 

記下“登錄服務器”的值。 結合 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,需要先登登錄。

1583551463555-5a031f20-4c24-40f5-b796-d579a37a80b7.png

當我們按照提示輸入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

1583551463566-dfd735ac-a387-4371-a6f5-66e4ee106b04.png

跳轉到如圖類似的網址(https://login.partner.microsoftonline.cn/common/oauth2/authorize)認證地址纔是中國區登錄。

 

再次執行 az acr login --name <acrName>,該命令在完成後返回 Login Succeeded

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

將映像推送到註冊表

要將映像推送到 Azure 容器註冊表,首先必須具有一個映像。 本例中我們使用上節內容中編譯好的sean/mask:v1

1583551463573-801e03c0-0698-4367-863c-b6477bfeab60.png

將映像推送到註冊表之前,必須使用 ACR 登錄服務器的完全限定的名稱進行標記。 登錄服務器名稱採用 <registry-name>.azurecr.cn(全小寫)格式。

使用 docker tag 命令標記映像。 使用 ACR 實例的登錄服務器名稱替換 <acrLoginServer>

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

 

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

最後,使用 docker push 將映像推送到 ACR 實例。 使用 ACR 實例的登錄服務器名稱替換 <acrLoginServer>。 此示例創建 hello-world 存儲庫,其中包含 hello-world:v1 映像。

docker push seanyutestacr.azurecr.cn/mask:v1

1583551464937-9b1c814c-d466-49e4-b2aa-5e22b0eb3d7b.png

 

在portal查看容器映像

若要列出註冊表中的映像,請在門戶中導航到註冊表並選擇“存儲庫”,然後選擇使用 docker push 創建的存儲庫 。

在本示例中,選擇 hello-world 存儲庫,並可在“標記”下看到 v1 標記的映像 。

1583551463594-dd412f91-33a6-4507-a079-b81dd4893978.png

 

從註冊表運行映像,注意本例子更換了一臺全新的虛擬機做測試

 全新計算機尚未登錄azure acr,則可以通過如下方式登錄:

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

1583551463573-2e8c07d7-14e5-4464-a469-2188052e7422.png

現在,可以使用 docker run 從容器註冊表拉取容器映像:

docker pull seanyutestacr.azurecr.cn/mask:v1

1583551463578-6dece043-ca76-4a6e-bf57-66a2ba92e233.png

在本地運行容器,然後在瀏覽器訪問測試:

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

1583551463608-9fc38a1f-0584-4c9d-9646-fc5a40d2d9b5.png



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章