演習 - NVIDIA DeepStream Graph Composer コンテナーを Azure Container Registry に発行する

完了

DeepStream Graph Composer アプリケーションをコンテナーにパッケージ化したので、この成果物を Azure Container Registry のインスタンスに発行して、サポートされている他のデバイスに安全に分散させる準備ができました。

この準備では、Azure IoT Edge を使用して潜在的なデプロイのステージも設定します。詳細については、次のモジュールで説明します。

  1. まず、"コンテナー レジストリの作成" に関するこれらの手順に従います。このドキュメントには、Microsoft Azure で必要な Container Registry リソースをインスタンス化する方法と、サインインしてこのサービスにイメージをプッシュする方法が示されています。 このセクションの手順を完了した後、DeepStream Graph Composer コンテナー成果物をこのレジストリに発行します。

    クイック スタート: Azure portal を使用して Azure コンテナー レジストリを作成する」の手順に従います。 コンテナー レジストリの作成手順に従うだけで済みます。 ドキュメントに記載されている追加の手順は省略可能です。 このタスクが完了した後、次の手順に進みます。

  2. Azure portal の Container Registry の新しくデプロイされたインスタンスに移動します。

    Azure Container Registry の概要を示すスクリーンショット。

    コンテナー レジストリには、サービスにリモートでアクセスするための URL を指す [ログイン サーバー] プロパティがあるのがわかります。 このプロパティは azurecr.io で終わります。 この値はすぐに使用しますのでメモしておいてください。

  3. 次に、左側の [設定] の下にある [アクセス キー] セクションを選択し、[管理者ユーザー] のオプションを有効にします。 この操作により、コンテナー レジストリに対して認証を行い、ホスト コンピューターで実行されている Docker インスタンスからのアクセスを許可できるようになります。 ここでも、[ログイン サーバー][ユーザー名]、および [パスワード] の値をメモしておきます。これらは次の手順で使用します。

    Container Registry のアクセス キーを示すスクリーンショット。

  4. これで、コンテナー レジストリに対して認証を行い、ホストの Docker インスタンスへのアクセスを許可する準備ができました。 この手順を行うには、ホスト コンピューターのターミナル セッションで次のコマンドを実行します。

    sudo docker login <Login server>
    
    1. [ユーザー名] の入力を求めるメッセージが表示されたら、Azure portal のコンテナー レジストリの [アクセス キー] セクションで指定した値を入力します。

    2. [パスワード] の入力を求めるメッセージが表示されたら、Azure portal のコンテナー レジストリの [アクセス キー] セクションで指定した値を入力します。

    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 portal のコンテナー レジストリに戻り、イメージがアップロードされたのを確認します。 確認するには、概要ページの左側にある [サービス] セクションで [リポジトリ] を選択します。 以下のように、リポジトリ リストに新たにプッシュした 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
    

    Note

    使用している現在のホストではないコンピューターでこのワークロードを実行する場合は、sudo xhost + を使用して X11 へのアクセスを有効にし、コンテナー レジストリへのアクセスのために Docker インスタンスを認証する必要があります。

おめでとうございます。 最初の DeepStream Graph Composer アプリケーションを正常にビルドしてセキュリティで保護されたコンテナー レジストリに発行し、ワークロードをさまざまな互換性のあるホストに分散できるようになりました。

次の操作を試してみてください

レストランに入る人の数をカウントする IVA アプリケーションを開発することを依頼されたとします。 開発チームは、IVA ソリューションを運用環境にデプロイする前に精度を検証するテスト チームと密接に連携しています。 テスト ハードウェアの手動による再構成を必要としない方法で、IVA アプリケーションの新しいビルドをテスト チームに分散させるにはどうすればよいでしょうか?