Share via


IoT Edge デバイス上のコネクテッド レジストリからイメージをプルする

コネクテッド レジストリからイメージをプルするには、クライアント トークンを構成し、その資格情報を渡すことでレジストリの内容にアクセスします。

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

スコープ マップを作成する

hello-world リポジトリへの読み取りアクセスのためのスコープ マップを作成するには、az acr scope-map create コマンドを使用します。

# Use the REGISTRY_NAME variable in the following Azure CLI commands to identify the registry
REGISTRY_NAME=<container-registry-name>

az acr scope-map create \
  --name hello-world-scopemap \
  --registry $REGISTRY_NAME \
  --repository hello-world content/read \
  --description "Scope map for the connected registry."

クライアント トークンを作成する

az acr token create コマンドを使用してクライアント トークンを作成し、新しく作成したスコープ マップにそれを関連付けます。

az acr token create \
  --name myconnectedregistry-client-token \
  --registry $REGISTRY_NAME \
  --scope-map hello-world-scopemap

このコマンドからは、新しく生成されたトークンについての詳細が返されます。その中にはパスワードも含まれます。

重要

生成されたパスワードは必ず保存しておいてください。 これらはワンタイム パスワードであり、取得することはできません。 新しいパスワードは、az acr token credential generate コマンドを使用して生成できます。

クライアント トークンを使用してコネクテッド レジストリを更新する

新しく作成したクライアント トークンでコネクテッド レジストリを更新するには、az acr connected-registry update コマンドを使用します。

az acr connected-registry update \
  --name $CONNECTED_REGISTRY_RW \
  --registry $REGISTRY_NAME \
  --add-client-token myconnectedregistry-client-token

コネクテッド レジストリからイメージをプルする

IoT Edge デバイスにアクセスできるマシンから次の例のコマンドを使用し、クライアント トークンの資格情報を使用してコネクテッド レジストリにサインインします。 ログイン資格情報の管理のベスト プラクティスについては、docker login コマンドのリファレンスを参照してください。

注意事項

セキュリティで保護されていないレジストリとしてコネクテッド レジストリをセットアップした場合は、Docker デーモンの構成にあるセキュリティで保護されていないレジストリのリストに、IoT Edge デバイス上のコネクテッド レジストリの IP アドレス (または FQDN) とポートを追加して更新してください。 この構成の用途はテスト目的に限定してください。 詳細については、「セキュリティで保護されていないレジストリをテストする」を参照してください。

docker login --username myconnectedregistry-client-token \
  --password <token_password> <IP_address_or_FQDN_of_connected_registry>:<port>

IoT Edge のシナリオでは、デバイス上のコネクテッド レジストリにアクセスするためのポートを必ず含めてください。 例:

docker login --username myconnectedregistry-client-token \
  --password xxxxxxxxxxx 192.0.2.13:8000

そのうえで、次のコマンドを使用して hello-world イメージをプルします。

docker pull <IP_address_or_FQDN_of_connected_registry>:<port>/hello-world

次のステップ