Compartir comentarios
Las respuestas se generan en base a la documentación.

Configurar la imposición del inicio de sesión

Suscripción: Team Business
Para: Administradores

Puedes imponer el inicio de sesión para Docker Desktop utilizando varios métodos. Elige el método que mejor se adapte a la infraestructura y los requisitos de seguridad de tu organización.

Elige tu método

MétodoPlataforma
Clave de registroSolo Windows
Perfiles de configuraciónSolo Mac
Archivo plistSolo Mac
registry.jsonTodas las plataformas
Tip

Para Mac, los perfiles de configuración ofrecen la mayor seguridad porque están protegidos por la Protección de Integridad del Sistema (System Integrity Protection - SIP) de Apple.

Windows: Método de clave de registro

Para configurar el método de clave de registro manualmente:

  1. Crea la clave del registro:

    $ HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Docker\Docker Desktop
    
  2. Crea un valor de cadena múltiple llamado allowedOrgs.

  3. Utiliza los nombres de tu organización como datos de cadena. Puedes agregar múltiples organizaciones:

    • Utiliza solo letras minúsculas
    • Agrega cada organización en una línea separada
    • No utilices espacios ni comas como separadores
  4. Reinicia Docker Desktop.

  5. Verifica que aparezca el mensaje de ¡Inicio de sesión requerido! (Sign in required!) en Docker Desktop.

Despliega la clave de registro en toda tu organización utilizando una Directiva de Grupo (Group Policy):

  1. Crea un script de registro con la siguiente estructura:
    • Ruta: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Docker\Docker Desktop
    • Nombre del valor: allowedOrgs (cadena múltiple)
    • Datos del valor: Los nombres de tus organizaciones, uno por línea, solo en minúsculas
  2. En la Consola de Administración de Directivas de Grupo (Group Policy Management), crea o edita un GPO.
  3. Navega a Configuración del equipo (Computer Configuration) > Preferencias (Preferences) > Configuración de Windows (Windows Settings) > Registro (Registry).
  4. Haz clic derecho en Registro > Nuevo > Elemento de registro (Registry Item).
  5. Configura el elemento de registro:
    • Acción: Actualizar (Update)
    • Ruta de la clave: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Docker\Docker Desktop
    • Nombre del valor: allowedOrgs
    • Datos del valor: Los nombres de tus organizaciones
  6. Vincula el GPO a la Unidad Organizativa de destino.
  7. Realiza pruebas en un grupo pequeño utilizando gpupdate /force.
  8. Despliégalo en toda la organización tras la verificación.

Mac: Método de perfiles de configuración (recomendado)

Los perfiles de configuración proporcionan el método de imposición más seguro para Mac, ya que están protegidos por la Protección de Integridad del Sistema de Apple.

La carga útil (payload) es un diccionario de valores clave. Docker Desktop admite las siguientes claves:

  • allowedOrgs: Establece una lista de organizaciones en una sola cadena, donde cada organización está en minúsculas y separada por un punto y coma.
  • overrideProxyHTTP: Establece la URL del proxy HTTP que debe usarse para las solicitudes HTTP salientes.
  • overrideProxyHTTPS: Establece la URL del proxy HTTP que debe usarse para las solicitudes HTTPS salientes.
  • overrideProxyExclude: Omite la configuración del proxy para los hosts y dominios especificados. Utiliza una lista separada por comas.
  • overrideProxyPAC: Establece la ruta del archivo donde se encuentra el archivo PAC. Tiene precedencia sobre el archivo PAC remoto en el proxy seleccionado.
  • overrideProxyEmbeddedPAC: Establece el contenido de un archivo PAC en memoria. Tiene precedencia sobre overrideProxyPAC.

Anular al menos uno de los ajustes de proxy a través de los perfiles de configuración bloqueará automáticamente los ajustes, ya que serán gestionados por Mac.

  1. Crea un archivo llamado docker.mobileconfig e incluye el siguiente contenido:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
       <key>PayloadContent</key>
       <array>
          <dict>
             <key>PayloadType</key>
             <string>com.docker.config</string>
             <key>PayloadVersion</key>
             <integer>1</integer>
             <key>PayloadIdentifier</key>
             <string>com.docker.config</string>
             <key>PayloadUUID</key>
             <string>eed295b0-a650-40b0-9dda-90efb12be3c7</string>
             <key>PayloadDisplayName</key>
             <string>Docker Desktop Configuration</string>
             <key>PayloadDescription</key>
             <string>Configuration profile to manage Docker Desktop settings.</string>
             <key>PayloadOrganization</key>
             <string>Your company name</string>
             <key>allowedOrgs</key>
             <string>first_org;second_org</string>
             <key>overrideProxyHTTP</key>
             <string>http://company.proxy:port</string>
             <key>overrideProxyHTTPS</key>
             <string>https://company.proxy:port</string>
          </dict>
       </array>
       <key>PayloadType</key>
       <string>Configuration</string>
       <key>PayloadVersion</key>
       <integer>1</integer>
       <key>PayloadIdentifier</key>
       <string>com.yourcompany.docker.config</string>
       <key>PayloadUUID</key>
       <string>0deedb64-7dc9-46e5-b6bf-69d64a9561ce</string>
       <key>PayloadDisplayName</key>
       <string>Docker Desktop Config Profile</string>
       <key>PayloadDescription</key>
       <string>Config profile to enforce Docker Desktop settings for allowed organizations.</string>
       <key>PayloadOrganization</key>
       <string>Your company name</string>
    </dict>
    </plist>
  2. Reemplaza los marcadores de posición:
    • Cambia com.yourcompany.docker.config por el identificador de tu empresa
    • Reemplaza Your company name por el nombre de tu organización, asegurándote de que esté todo en minúsculas
    • Reemplaza PayloadUUID por un UUID generado aleatoriamente
    • Actualiza el valor allowedOrgs con los nombres de tus organizaciones (separados por punto y coma)
    • Reemplaza company.proxy:port con el host (o dirección IP) y puerto del servidor proxy http/https
  3. Despliega el perfil utilizando tu solución de MDM.
  4. Verifica que el perfil aparezca en Ajustes del Sistema > General > Gestión de dispositivos en Dispositivo (gestionado). Asegúrate de que el perfil aparezca con el nombre y los ajustes correctos.

Algunas soluciones de MDM te permiten especificar la carga útil como un diccionario simple de ajustes de clave-valor sin el contenedor .mobileconfig completo:

<dict>
   <key>allowedOrgs</key>
   <string>first_org;second_org</string>
   <key>overrideProxyHTTP</key>
   <string>http://company.proxy:port</string>
   <key>overrideProxyHTTPS</key>
   <string>https://company.proxy:port</string>
</dict>

Mac: Método de archivo plist

  1. Crea el archivo /Library/Application Support/com.docker.docker/desktop.plist.
  2. Agrega este contenido, reemplazando myorg1 y myorg2 con los nombres de tus organizaciones y asegurándote de que tengan solo letras minúsculas:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
      <dict>
          <key>allowedOrgs</key>
          <array>
              <string>myorg1</string>
              <string>myorg2</string>
          </array>
      </dict>
    </plist>
  3. Establece los permisos del archivo para evitar que los usuarios que no sean administradores lo editen.
  4. Reinicia Docker Desktop.
  5. Verifica que aparezca el mensaje de Sign in required! en Docker Desktop.

Crea y despliega un script para la distribución en toda la organización:

#!/bin/bash

# Crear el directorio si no existe
sudo mkdir -p "/Library/Application Support/com.docker.docker"

# Escribir el archivo plist
sudo defaults write "/Library/Application Support/com.docker.docker/desktop.plist" allowedOrgs -array "myorg1" "myorg2"

# Establecer los permisos adecuados
sudo chmod 644 "/Library/Application Support/com.docker.docker/desktop.plist"
sudo chown root:admin "/Library/Application Support/com.docker.docker/desktop.plist"

Despliega este script mediante SSH, herramientas de soporte remoto o tu método de despliegue preferido.

Todas las plataformas: Método registry.json

El método registry.json funciona en todas las plataformas y ofrece opciones de despliegue flexibles.

Ubicaciones de los archivos

Crea el archivo registry.json (UTF-8 sin BOM) en la ubicación correspondiente:

PlataformaUbicación
Windows/ProgramData/DockerDesktop/registry.json
Mac/Library/Application Support/com.docker.docker/registry.json
Linux/usr/share/docker-desktop/registry/registry.json

Configuración básica

  1. Asegúrate de que los usuarios sean miembros de tu organización de Docker.
  2. Crea el archivo registry.json en la ubicación correspondiente a tu plataforma.
  3. Agrega este contenido, reemplazando los nombres de las organizaciones por los tuyos y asegurándote de que tengan solo letras minúsculas:
    {
       "allowedOrgs": ["myorg1", "myorg2"]
    }
  4. Establece los permisos del archivo para evitar que el usuario lo edite.
  5. Reinicia Docker Desktop.
  6. Verifica que aparezca el mensaje de Sign in required! en Docker Desktop.
Tip

Si los usuarios tienen problemas para iniciar Docker Desktop después de imponer el inicio de sesión, es posible que necesiten actualizar a la versión más reciente.

Windows (PowerShell como Administrador)

Set-Content /ProgramData/DockerDesktop/registry.json '{"allowedOrgs":["myorg1","myorg2"]}'

Mac

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

Linux

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

Crea el archivo registry.json durante la instalación de Docker Desktop:

Windows

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

# Símbolo del sistema (Command Prompt)
"Docker Desktop Installer.exe" install --allowed-org=myorg1
Note

La bandera --allowed-org acepta solo una organización. Para imponer el inicio de sesión para múltiples organizaciones en Mac, configura el archivo registry.json después de la instalación.

Mac

sudo hdiutil attach Docker.dmg
sudo /Volumes/Docker/Docker.app/Contents/MacOS/install --allowed-org=myorg
sudo hdiutil detach /Volumes/Docker
Note

La bandera --allowed-org acepta solo una organización. Para imponer el inicio de sesión para múltiples organizaciones en Mac, configura el archivo registry.json después de la instalación.

Precedencia de los métodos

Cuando existen múltiples métodos de configuración en el mismo sistema, Docker Desktop utiliza este orden de precedencia:

  1. Clave de registro (solo Windows)
  2. Perfiles de configuración (solo Mac)
  3. Archivo plist (solo Mac)
  4. Archivo registry.json

Solución de problemas de la imposición del inicio de sesión

Si la imposición del inicio de sesión no funciona:

  • Verifica las ubicaciones y los permisos de los archivos
  • Comprueba que los nombres de las organizaciones utilicen letras minúsculas
  • Reinicia Docker Desktop o reinicia el sistema
  • Confirma que los usuarios sean miembros de las organizaciones especificadas
  • Actualiza Docker Desktop a la versión más reciente