Registry Access Management

管理者は Docker Desktop を使用する開発者が許可されたレジストリのみにアクセスできるようにすることが可能です。

Registry Access Management (RAM) により、管理者は Docker Desktop を使用する開発者が許可されたレジストリのみにアクセスできるようにすることが可能です。これは Docker Hub の Registry Access Management ダッシュボードで行います。

Registry Access Management は、クラウドとオンプレミスの両方のレジストリをサポートしています。管理者が許可できるレジストリの例には以下が含まれます。

サポートされているレジストリ
  • Docker Hub (デフォルトで有効)
  • Amazon ECR
  • GitHub Container Registry
  • Google Container Registry
  • Nexus
  • Artifactory

準備

サインインを強制するため、registry.json を設定する必要があります。Registry Access Management を有効にするには、Docker Desktop ユーザーが組織に認証される必要があります。

Registry Access Management 権限の設定

Registry Access Management 権限を設定するには、次の操作を行います。

  1. 組織のオーナーとして Docker Hub アカウントにログインします。
  2. 組織を選択して、[Organizations] ページの [Settings] タブに移動し、[Registry Access] をクリックします。
  3. Registry Access Management を切り替えて、レジストリの権限を設定します。

  4. レジストリをリストに追加するには、[Add] を選択し、該当するフィールドにレジストリの詳細を入力し、[Create] をクリックします。
  5. レジストリがリストに表示されたことを確認し、[Save & Apply] をクリックします。変更が保存されたことは、[Activity] タブで確認できます。追加できるレジストリの数に制限はありません。

制限の確認

新しい Registry Access Management ポリシーは、開発者が組織の認証情報を使用して Docker Desktop の認証に成功した後に有効になります。開発者が Docker CLI 経由で許可されていないレジストリからイメージをプルしようとすると、組織がこのレジストリを許可していないというエラー メッセージが表示されます。

注意事項

制限事項

Registry Access Management を使用する場合、いくつかの制限があります。

  • Windows イメージのプルやイメージのビルドは制限されません。
  • Kubernetes ドライバーを使用した docker buildx などのビルドは制限されません。
  • カスタム docker-container ドライバーを使用した docker buildx などのビルドは制限されません。
  • ブロックは DNS ベースです。レジストリのアクセス制御メカニズムを使用して、プッシュとプルを区別する必要があります。
  • WSL 2 は、少なくとも 5.4 シリーズの Linux カーネルを必要とします (これは、以前の Linux カーネル シリーズには適用されません)。
  • WSL 2 ネットワークでは、すべての Linux ディストリビューションからのトラフィックが制限されます (これは、5.15 シリーズの Linux カーネルで解決される予定です)。
  • 現在、Hyper-V Windows コンテナーではサポートされていません。

また、Registry Access Management は IP アドレスではなく、ホストのレベルで動作します。開発者は、ローカル プロキシに対して Docker を実行したり、オペレーティング システムの sts ファイルを変更するなどして、ドメイン解決内でこの制限をバイパスできます。Docker Desktop では、このような操作のブロックはサポートしていません。