强制登录桌面
默认情况下,组织的成员可以在不登录的情况下使用 Docker Desktop。当用户不以组织成员的身份登录时,他们不会获得 组织订阅的好处,并且可以规避 组织的Docker 安全功能。
为了确保组织成员始终登录,您可以将
registry.json
配置文件部署到用户的计算机。
如何强制登录?
当 Docker Desktop 启动并检测到registry.json
文件时,会发生以下情况:
- 需要以下登录!将出现提示,要求用户以组织成员身份登录才能使用 Docker Desktop。
- 当用户登录不属于您组织成员的帐户时,他们将自动注销并且无法使用 Docker Desktop。用户可以选择“登录并重试”。
- 当用户登录属于您组织成员的帐户时,他们可以使用 Docker Desktop。
- 当用户退出时,需要登录!出现提示,他们无法再使用 Docker Desktop。
强制登录与强制 SSO
强制登录可确保用户需要登录才能使用 Docker Desktop。如果您的组织也使用单点登录 (SSO),您可以选择强制执行 SSO。这意味着您的用户必须使用 SSO 登录,而不是使用用户名和密码。当您强制登录并强制执行 SSO 时,您的用户必须登录并且必须使用 SSO 来执行此操作。有关如何为 SSO 连接启用此功能的详细信息,请参阅 强制 SSO 。
创建registry.json 文件以强制登录
确保用户是 Docker 中组织的成员。有关更多详细信息,请参阅 管理成员。
创建
registry.json
文件。根据用户的操作系统,
registry.json
在以下位置创建一个名为的文件,并确保该文件不能被用户编辑。平台 地点 Windows /ProgramData/DockerDesktop/registry.json 苹果 /库/应用程序支持/com.docker.docker/registry.json Linux /usr/share/docker-desktop/registry/registry.json 在文件中指定您的组织
registry.json
。在文本编辑器中打开该
registry.json
文件并添加以下内容,其中myorg
替换为您的组织名称。文件内容区分大小写,您的组织名称必须使用小写字母。{ "allowedOrgs": ["myorg"] }
验证是否强制执行登录。
要激活该
registry.json
文件,请在用户计算机上重新启动 Docker Desktop。当 Docker Desktop 启动时,验证是否需要登录!出现提示。在某些情况下,可能需要重新启动系统才能使强制生效。
提示
如果您的用户在强制登录后启动 Docker Desktop 时遇到问题,他们可能需要更新到最新版本。
创建registry.json 文件的替代方法
您还可以使用以下替代方法来创建文件registry.json
。
从 Docker Hub 下载registry.json 文件
在 Docker Hub 中,您可以下载registry.json
适合您的组织的文件或复制特定命令来为您的组织创建文件。要下载文件或复制命令,请使用以下步骤。
以组织所有者身份登录 Docker Hub 。
转至组织>您的组织>设置。
选择强制登录并继续按照 Windows、Mac 或 Linux 屏幕上的说明进行操作。
安装 Docker Desktop 时创建registry.json 文件
要在安装 Docker Desktop 时创建registry.json
文件,请根据用户的操作系统使用以下说明。
要registry.json
在安装 Docker Desktop 时自动创建文件,请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
要registry.json
在安装 Docker Desktop 时自动创建文件,请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
使用命令行创建registry.json文件
要使用命令行创建registry.json
,请根据用户的操作系统使用以下说明。
要使用 CLI 创建registry.json
文件,请以管理员身份运行以下 PowerShell 命令并替换myorg
为您的组织名称。文件内容区分大小写,您的组织名称必须使用小写字母。
PS> Set-Content /ProgramData/DockerDesktop/registry.json '{"allowedOrgs":["myorg"]}'
这将创建registry.json
文件
C:\ProgramData\DockerDesktop\registry.json
并包含用户所属的组织信息。确保用户无法编辑此文件,但只有管理员可以:
PS C:\ProgramData\DockerDesktop> Get-Acl .\registry.json
Directory: C:\ProgramData\DockerDesktop
Path Owner Access
---- ----- ------
registry.json BUILTIN\Administrators NT AUTHORITY\SYSTEM Allow FullControl...
要使用 CLI 创建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"
这将创建(或更新,如果文件已存在)文件registry.json
并/Library/Application Support/com.docker.docker/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
要使用 CLI 创建registry.json
文件,请在终端中运行以下命令并替换myorg
为您的组织名称。文件内容区分大小写,您的组织名称必须使用小写字母。
$ sudo mkdir -p /usr/share/docker-desktop/registry
$ echo '{"allowedOrgs":["myorg"]}' | sudo tee /usr/share/docker-desktop/registry/registry.json
这将创建(或更新,如果文件已存在)文件registry.json
并/usr/share/docker-desktop/registry/registry.json
包含用户所属的组织信息。确保该文件具有预期的内容,并且用户无法编辑该文件,只有 root 可以。
验证文件内容是否包含正确的信息:
$ 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部署到多个设备
前面的说明解释了如何创建registry.json
文件并将其部署到单个设备。要自动部署registry.json
到多个设备,您必须使用第三方解决方案,例如移动设备管理解决方案。您可以使用前面的说明以及第三方解决方案来远程部署该registry.json
文件,或者使用该文件远程安装 Docker Desktop registry.json
。有关更多详细信息,请参阅第三方解决方案的文档。