Azure IoT Edge入門(5)實戰將“識別戴口罩”算法部署到邊緣(2)-ACR準備
Azure IoT Edge入門(4)實戰將“識別戴口罩”算法部署到邊緣(2)-ACR準備
本案例分三節內容介紹:
將Custom Vision 模型導出成linux 容器;在本地build/run,完成本地測試;
準備Azure Container Registry, 將本地Build好的鏡像push到ACR裏;
使用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 中必須唯一,並且包含 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