練習 - 將 NVIDIA DeepStream Graph Composer 容器發佈至 Azure Container Registry

已完成

既然您已將 DeepStream Graph Composer 應用程式封裝到容器中,您就可以將此成品發佈至Azure Container Registry 的執行個體,以安全地散發至其他支援的裝置。

此準備也會使用 Azure IoT Edge 來設定潛在部署的階段,我們將在下一個課程模組中詳細說明。

  1. 若要開始,請遵循這些指示來「建立容器登錄」。本文件示範如何在 Microsoft Azure 中具現化必要的 Azure Container Registry 資源,以及如何登入並將映像推送至此服務。 完成本節中的步驟之後,您會將 DeepStream Graph Composer 容器成品發佈至此登錄。

    請遵循快速入門:使用 Azure 入口網站建立 Azure 容器登錄中的步驟。 您只需要遵循步驟來建立容器登錄。 本文所述的額外步驟為選擇性。 完成這項工作之後,請繼續進行後續步驟。

  2. 移至您在 Azure 入口網站中新部署的 Azure Container Registry 執行個體:

    顯示 Azure Container Registry 概觀的螢幕擷取畫面。

    您會注意到容器登錄具有登入伺服器屬性,該屬性會參考從遠端存取服務的 URL。 這個屬性以 azurecr.io 結尾。 請記下此值,因為很快就會用到。

  3. 接下來,在左側的 [設定] 下選取 [存取金鑰] 區段,然後啟用 [管理使用者] 的選項。 這項作業可讓您對容器登錄進行驗證,以允許從主機電腦上執行的 Docker 執行個體進行存取。 同樣地,記下 [登入伺服器]、[使用者名稱] 和 [密碼] 的值,下一個步驟中會用到。

    顯示 Azure Container Registry 存取金鑰的螢幕擷取畫面。

  4. 現在您已準備好針對容器登錄進行驗證,並授與對主機 Docker 執行個體的存取權。 若要執行此步驟,在主機電腦上的終端機工作階段中執行下列命令:

    sudo docker login <Login server>
    
    1. 提示您輸入使用者名稱 時,請輸入 Azure 入口網站的容器登錄 [存取金鑰] 區段中提供的值。

    2. 提示您輸入密碼時,請輸入 Azure 入口網站的容器登錄 [存取金鑰] 區段中提供的值。

    3. 成功輸入之後,您應該會看到訊息指出「登入成功」。

  5. 您必須先標記映像以參考容器登錄,才能將最近建立的 Docker 映像推送至容器登錄。 在主機電腦上的終端機執行下列命令:

    sudo docker tag deepstream_test1_dgpu <Login Server>/deepstream_test1_dgpu:v1
    
  6. 執行下列命令,將您的 DeepStream Graph Composer 容器映像推送至此存放庫:

    sudo docker push <Login Server>/deepstream_test1_dgpu:v1
    
  7. 等待推送完成。 然後回到 Azure 入口網站中的容器登錄,並確認映像已上傳。 若要確認,請在概觀頁面左側的 [服務] 區段下選取 [存放庫]。 您應該會在存放庫清單中看到您剛推送 deepstream_test1_dgpu:v1 映像,如下所示:

    顯示 Azure Container Registry 存放庫清單的螢幕擷取畫面。

  8. 最後,如果要使用容器登錄中包含的映像來執行此映像,請在相容主機上的終端機執行下列命令:

    sudo docker run -it --rm --gpus all -v /tmp/.X11-unix/:/tmp/.X11-unix/ -e DISPLAY=:0 
    <Login server>/deepstream_test1_dgpu:v1
    

    注意

    如果想要在不是您目前使用的主機電腦上執行此工作負載,您必須以 sudo xhost + 啟用對 X11 的存取權,並驗證您的 Docker 執行個體以存取您的容器登錄。

恭喜! 您已成功組建第一個 DeepStream Graph Composer 應用程式並發佈至安全的容器登錄,以便將工作負載散發至各種相容主機。

請嘗試這樣做

想像您負責開發 IVA 應用程式,以計算進入餐廳的人數。 您的開發小組與測試小組密切合作,在 IVA 解決方案部署到生產環境之前先驗證正確性。 如何以不需要手動重新設定測試硬體的方式,將 IVA 應用程式的新組建散發給測試小組?