サインインを要求する registry.json の設定

registry.jsonファイルは、ユーザーが所属するべき Docker 組織を定めるものとして、管理者が設定するファイルです。 したがって組織に対する設定は、ユーザーセッションに対して適用されます。 Docker Desktop のインストーラーがこのファイルを生成して、インストール処理の一部として各ユーザーマシンにこれをデプロイします。

ユーザーマシンにregistry.jsonファイルをデプロイした後は、Docker Desktop へのサインインが求められます。 ユーザーがサインインしなかった場合、またはregistry.jsonに指定されている組織とは別の組織を使ってサインインしようとした場合、Docker Desktop へのアクセスは拒否されます。 registry.jsonファイルをデプロイしてユーザーに対して認証操作を行わせることには、以下のメリットがあります。

  1. イメージアクセス管理 などにおいて管理者は、チームメンバーに許可する機能を以下のように制限することができます。
    • Docker Hub では信頼されたコンテンツのみへのアクセスとする。
    • 指定したカテゴリーのイメージしかプルできないようにする。
  2. 認証されたユーザーは匿名ユーザーに比べて、より高いプル制限率が得られます。 たとえば認証ユーザーの場合、6 時間ごとに 200 プルを行うことができます。 これが匿名ユーザーの場合は IP アドレスごとに、6 時間内では 100 プルしか行うことができません。 詳しいことは ダウンロード率制限 を参照してください。
  3. 指定した組織にユーザーが追加されていない限りは、Docker Desktop へのアクセスを拒否することができます。

registry.json ファイルの生成

registry.jsonファイルを生成する際に、開発担当者は Docker Hub 上の少なくとも 1 つの組織のメンバーであることを確認します。registry.jsonファイルが、開発者の属する少なくとも 1 つの組織と一致した場合、Docker Desktop へのサインインが可能となり、その組織すべてにアクセスができます。

Windows の場合

Windows では、端末上から以下のコマンドを実行して Docker Desktop をインストールします。

C:\Users\Admin> "Docker Desktop Installer.exe" install

PowerShell の利用時は以下を実行します。

PS> Start-Process '.\win\build\Docker Desktop Installer.exe' -Wait install

Windows コマンドプロンプトの場合は以下とします。

C:\Users\Admin> start /w "" "Docker Desktop Installer.exe" install

installコマンドには以下のフラグ指定ができます。

--allowed-org=<org name>

This requires the user to sign in and be part of the specified Docker Hub organization when running the application. For example:

C:\Users\Admin> "Docker Desktop Installer.exe" install --allowed-org=acmeinc

This creates the registry.json file at C:\ProgramData\DockerDesktop\registry.json and includes the organization information the user belongs to. Make sure this file can’t be edited by the individual developer, only by the administrator.

Mac の場合

After downloading Docker.dmg, run the following commands in a terminal to install Docker Desktop in the Applications folder:

$ sudo hdiutil attach Docker.dmg
$ sudo /Volumes/Docker/Docker.app/Contents/MacOS/install
$ sudo hdiutil detach /Volumes/Docker

The install command accepts the following flags:

--allowed-org=<org name>

This requires the user to sign in and be part of the specified Docker Hub organization when running the application. For example:

$ sudo hdiutil attach Docker.dmg --allowed-org=acmeinc

This creates the registry.json file at /Library/Application Support/com.docker.docker/registry.json and includes the organization information the user belongs to. Make sure this file can’t be edited by the individual developer, only by the administrator.

変更の確認

registry.jsonファイルを生成して、各ユーザーマシンに対してデプロイしたら、各ユーザーが Docker Desktop を起動できるかどうかを問い合わせて、変更が適用されたことを確認します。

設定が正しく行われたら、各ユーザーによる Docker Desktop の起動時に、組織情報を使ったユーザー認証が求められます。 ユーザー認証に失敗した場合は、エラーメッセージが表示されて、Docker Desktop へのアクセスが拒否されます。

authentication, registry.json, configure