デフォルトでは、組織のメンバーはどの Docker アカウントにもサインインすることなく、自分のマシンで Docker Desktop を使用することができます。ユーザーが組織のメンバーである Docker アカウントにサインインし、組織の設定がユーザのセッションに適用されるようにするには、registry.json
ファイルを使用することができます。
registry.json
ファイルは、オーナーがユーザーが所属する必要のある Docker 組織を指定し、その組織の設定がユーザーのセッションに適用されるようにするための設定ファイルです。Docker Desktop インストーラーは、インストール プロセスの一部として、このファイルをユーザのマシン上に作成することができます。
ユーザーのマシンで registry.json
ファイルが設定されると、Docker Desktop はユーザーにサインインするよう求めます。もしユーザーがサインインしなかったり、registry.json
ファイルに記載されている組織とは異なる組織を使用してサインインしようとすると、Docker Desktop へのアクセスは拒否されます。
registry.json
ファイルを配置し、ユーザーに認証を強制することは必須ではありませんが、以下のような利点があります。
オーナーは、Image Access Management などの機能を設定することができ、これによりチーム メンバーは以下を行うことができます。
認証済みユーザーは、匿名ユーザーと比較して、より高いプルレート制限を受けることができます。例えば、認証済みユーザーは、6 時間あたり 200 プルできるのに対し、匿名ユーザーは IP アドレスごとに 6 時間あたり 100 プルに限定されます。詳細については、Download rate limit を参照してください。
特定の組織に追加されるまで、ユーザーが Docker Desktop にアクセスするのをブロックします。
registry.json
ファイルを作成する前に、ユーザーが Docker Hub の少なくとも 1 つの組織のメンバーであることを確認します。registry.json
ファイルがユーザーが所属する少なくとも 1 つの組織と一致する場合、ユーザーは Docker Desktop にサインインしてすべての組織にアクセスすることができます。
ユーザーのオペレーティング システムに基づいて、以下の場所に 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 では、以下の方法で registry.json
ファイルを作成できます。
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.json
に registry.json
ファイルが作成され、ユーザーが所属する組織情報が含まれます。このファイルはユーザーが編集できないようにし、管理者のみが編集できるようにします。
Mac の場合、以下の方法で registry.json
を作成することができます。
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.json
に registry.json
ファイルが作成され、ユーザーが所属する組織情報が含まれます。このファイルはユーザーが編集できないようにし、管理者のみが編集できるようにします。
ファイルの内容が正しい情報であることを確認します。
$ sudo cat "/Library/Application Support/com.docker.docker/registry.json"
{"allowedOrgs":["myorg"]}
ファイルに期待されるパーミッション (-rw-r--r--
) と所有権 (root
と admin
) があることを確認します。
$ 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 では、以下の方法で 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.json
に registry.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 へのアクセスが拒否されます。