サインインを強制するための registry.json の設定

registry.json ファイルを使用して、ユーザーが組織のメンバーである Docker アカウントにサインインし、組織の設定がユーザーのセッションに適用されるようにします。

概要

デフォルトでは、組織のメンバーはどの Docker アカウントにもサインインすることなく、自分のマシンで Docker Desktop を使用することができます。ユーザーが組織のメンバーである Docker アカウントにサインインし、組織の設定がユーザのセッションに適用されるようにするには、registry.json ファイルを使用することができます。

registry.json ファイルは、オーナーがユーザーが所属する必要のある Docker 組織を指定し、その組織の設定がユーザーのセッションに適用されるようにするための設定ファイルです。Docker Desktop インストーラーは、インストール プロセスの一部として、このファイルをユーザのマシン上に作成することができます。

ユーザーのマシンで registry.json ファイルが設定されると、Docker Desktop はユーザーにサインインするよう求めます。もしユーザーがサインインしなかったり、registry.json ファイルに記載されている組織とは異なる組織を使用してサインインしようとすると、Docker Desktop へのアクセスは拒否されます。

利点

registry.json ファイルを配置し、ユーザーに認証を強制することは必須ではありませんが、以下のような利点があります。

  • オーナーは、Image Access Management などの機能を設定することができ、これによりチーム メンバーは以下を行うことができます。

    • Docker Hub の Trusted Content にのみアクセスする
    • 指定されたイメージのカテゴリからしかプルできないようにする
  • 認証済みユーザーは、匿名ユーザーと比較して、より高いプルレート制限を受けることができます。例えば、認証済みユーザーは、6 時間あたり 200 プルできるのに対し、匿名ユーザーは IP アドレスごとに 6 時間あたり 100 プルに限定されます。詳細については、Download rate limit を参照してください。

  • 特定の組織に追加されるまで、ユーザーが Docker Desktop にアクセスするのをブロックします。

registry.json ファイルを作成する

ユーザーのオペレーティング システムに基づいて、以下の場所に registry.json ファイルを作成し、そのファイルがユーザーによって編集できないことを確認する必要があります。

Platform Location
Windows /ProgramData/DockerDesktop/registry.json
Mac /Library/Application Support/com.docker.docker/registry.json
Linux /usr/share/docker-desktop/registry/registry.json

registry.json ファイルには、以下の内容を記述する必要があります。myorg は該当する組織名に置き換えてください。

{
  "allowedOrgs": ["myorg"]
}

ユーザーの OS に基づいて registry.json ファイルを作成することができます。

Windows

Windows に Docker Desktop をインストールする際に registry.json を作成する

Docker Desktop のインストール時に registry.json ファイルを自動的に作成するには、Docker Desktop Installer.exe をダウンロードし、Docker Desktop Installer.exe のあるディレクトリから以下のコマンドのいずれかを実行します。myorg を該当する組織名に置き換えてください。

PowerShell を使用している場合:

PS> Start-Process '.\Docker Desktop Installer.exe' -Wait install --allowed-org=myorg

Windows のコマンド プロンプトを使用している場合:

C:\Users\Admin> "Docker Desktop Installer.exe" install --allowed-org=myorg
Windows で registry.json を手動で作成する

手動で registry.json ファイルを作成するには、Admin として次の PowerShell コマンドを実行し、myorg を組織名に置き換えてください。

PS>  Set-Content /ProgramData/DockerDesktop/registry.json '{"allowedOrgs":["myorg"]}'

これにより、C:\ProgramData\DockerDesktop\registry.jsonregistry.json ファイルが作成され、ユーザーが所属する組織情報が含まれます。このファイルはユーザーが編集できないようにし、管理者のみが編集できるようにします。

Mac

Mac に Docker Desktop をインストールする際に registry.json を作成する

Docker Desktop のインストール時に registry.json ファイルを自動的に作成するには、Docker.dmg をダウンロードし、Docker.dmg のあるディレクトリからターミナルで次のコマンドを実行します。myorg を該当する組織名に置き換えてください。

$ sudo hdiutil attach Docker.dmg
$ sudo /Volumes/Docker/Docker.app/Contents/MacOS/install --allowed-org=myorg
$ sudo hdiutil detach /Volumes/Docker
Mac で registry.json を手動で作成する

手動で registry.json ファイルを作成するには、ターミナルで以下のコマンドを実行し、myorg を組織名に置き換えてください。

$ sudo mkdir -p "/Library/Application Support/com.docker.docker"
$ echo '{"allowedOrgs":["myorg"]}' | sudo tee "/Library/Application Support/com.docker.docker/registry.json"

これにより、/Library/Application Support/com.docker.docker/registry.jsonregistry.json ファイルが作成され、ユーザーが所属する組織情報が含まれます。このファイルはユーザーが編集できないようにし、管理者のみが編集できるようにします。

ファイルの内容が正しい情報であることを確認します。

$ sudo cat "/Library/Application Support/com.docker.docker/registry.json"
{"allowedOrgs":["myorg"]}

ファイルに期待されるパーミッション (-rw-r--r--) と所有権 (rootadmin) があることを確認します。

$  sudo ls -l "/Library/Application Support/com.docker.docker/registry.json"
-rw-r--r--  1 root  admin  26 Jul 27 22:01 /Library/Application Support/com.docker.docker/registry.json

Linux

Linux で registry.json を手動で作成する

手動で registry.json ファイルを作成するには、ターミナルで以下のコマンドを実行し、myorg を組織名に置き換えてください。

$ sudo mkdir -p /usr/share/docker-desktop/registry
$ echo '{"allowedOrgs":["myorg"]}' | sudo tee /usr/share/docker-desktop/registry/registry.json

これにより、/usr/share/docker-desktop/registry/registry.jsonregistry.json ファイルが作成され、ユーザーが所属する組織情報が含まれます。このファイルはユーザーが編集できないようにし、管理者のみが編集できるようにします。

ファイルの内容が正しい情報であることを確認します。

$ sudo cat /usr/share/docker-desktop/registry/registry.json
{"allowedOrgs":["myorg"]}

ファイルに期待されるパーミッション (-rw-r--r--) と所有権 (root) があることを確認します。

$ sudo ls -l /usr/share/docker-desktop/registry/registry.json
-rw-r--r--  1 root  root  26 Jul 27 22:01 /usr/share/docker-desktop/registry/registry.json

変更内容を確認する

registry.json ファイルを作成し、ユーザーのマシンにデプロイした後、ユーザーに Docker Desktop の起動を依頼することで、変更が有効になったかどうかを検証することができます。

設定に成功した場合、Docker Desktop は起動時に組織の認証情報を使用して認証するようユーザーに促します。認証に失敗した場合、ユーザーにはエラーメッセージが表示され、Docker Desktop へのアクセスが拒否されます。