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

Configurar la Gestión de Ajustes con un archivo JSON

Suscripción: Business
Para: Administradores

La Gestión de Ajustes (Settings Management) te permite configurar e imponer los ajustes de Docker Desktop en toda tu organización utilizando un archivo admin-settings.json. Esto estandariza los entornos de Docker Desktop y garantiza configuraciones consistentes para todos los usuarios.

Requisitos previos

Antes de comenzar, asegúrate de tener:

La presencia del archivo admin-settings.json impone el inicio de sesión en Docker Desktop. Esto está diseñado para características empresariales que requieren autenticación.

Los usuarios deben iniciar sesión y formar parte de una organización de Docker Business. Si no se cumple alguna de estas condiciones, se ignora el archivo de configuración.

Paso uno: Crear el archivo de ajustes

Puedes crear el archivo admin-settings.json de dos maneras:

  • Utiliza la bandera del instalador --admin-settings para generar automáticamente el archivo:
    • Guía de instalación de Mac
    • Guía de instalación de Windows
  • Créalo manualmente (UTF-8 sin BOM) y colócalo en las siguientes ubicaciones:
    • Mac: /Library/Application Support/com.docker.docker/admin-settings.json
    • Windows: C:\ProgramData\DockerDesktop\admin-settings.json
    • Linux: /usr/share/docker-desktop/admin-settings.json
Important

Coloca el archivo en un directorio protegido para evitar cambios no autorizados. Utiliza herramientas de Gestión de Dispositivos Móviles (MDM) como Jamf para distribuir el archivo a escala en toda tu organización.

Paso dos: Configurar los ajustes

Tip

Para obtener una lista completa de los ajustes disponibles, las plataformas admitidas y los métodos de configuración compatibles, consulta la Referencia de ajustes.

El archivo admin-settings.json utiliza claves estructuradas para definir los ajustes configurables y si los valores están impuestos.

Cada ajuste admite un campo locked (bloqueado) que controla los permisos del usuario:

  • Cuando locked se establece en true, los usuarios no pueden cambiar ese valor en Docker Desktop, la CLI o los archivos de configuración.
  • Cuando locked se establece en false, el valor actúa como una sugerencia predeterminada y los usuarios pueden actualizarlo.

Los ajustes donde locked se establece en false se ignoran en las instalaciones existentes si el usuario ya ha personalizado ese valor en settings-store.json, settings.json o daemon.json.

Ajustes agrupados

Docker Desktop agrupa algunos ajustes con un único interruptor (toggle) que controla la sección completa. Estos incluyen:

  • Aislamiento de Contenedores Mejorado (ECI): Utiliza un interruptor principal (enhancedContainerIsolation) que habilita/deshabilita toda la característica, con subajustes para configuraciones específicas.
  • Kubernetes: Utiliza un interruptor principal (kubernetes.enabled) con subajustes para la configuración del clúster.
  • Docker Scout: Agrupa los ajustes bajo el objeto scout.

Al configurar los ajustes agrupados:

  1. Establece el interruptor principal para habilitar la característica.
  2. Configura los subajustes dentro de ese grupo.
  3. Cuando bloqueas el interruptor principal, los usuarios no pueden modificar ningún ajuste en ese grupo.

Ejemplo para enhancedContainerIsolation:

"enhancedContainerIsolation": {
  "locked": true,  // Esto bloquea toda la sección de ECI
  "value": true,   // Esto habilita ECI
  "dockerSocketMount": {  // Estos son subajustes
    "imageList": {
      "images": ["docker.io/testcontainers/ryuk:*"]
    }
  }
}

Ejemplo de archivo admin-settings.json

La siguiente muestra es un archivo admin-settings.json con los ajustes empresariales comunes configurados. Puedes utilizar este ejemplo como plantilla con las configuraciones de admin-settings.json:

{
  "configurationFileVersion": 2,
  "exposeDockerAPIOnTCP2375": {
    "locked": true,
    "value": false
  },
  "proxy": {
    "locked": true,
    "mode": "system",
    "http": "",
    "https": "",
    "exclude": [],
    "windowsDockerdPort": 65000,
    "enableKerberosNtlm": false,
    "pac": "",
    "embeddedPac": ""
  },
  "containersProxy": {
    "locked": true,
    "mode": "manual",
    "http": "",
    "https": "",
    "exclude": [],
    "pac": "",
    "embeddedPac": "",
    "transparentPorts": ""
  },
  "enhancedContainerIsolation": {
    "locked": true,
    "value": true,
    "dockerSocketMount": {
      "imageList": {
        "images": [
          "docker.io/localstack/localstack:*",
          "docker.io/testcontainers/ryuk:*"
        ]
      },
      "commandList": {
        "type": "deny",
        "commands": ["push"]
      }
    }
  },
  "linuxVM": {
    "wslEngineEnabled": {
      "locked": false,
      "value": false
    },
    "dockerDaemonOptions": {
      "locked": false,
      "value": "{\"debug\": false}"
    },
    "vpnkitCIDR": {
      "locked": false,
      "value": "192.168.65.0/24"
    }
  },
  "kubernetes": {
    "locked": false,
    "enabled": false,
    "showSystemContainers": false,
    "imagesRepository": ""
  },
  "windowsContainers": {
    "dockerDaemonOptions": {
      "locked": false,
      "value": "{\"debug\": false}"
    }
  },
  "disableUpdate": {
    "locked": false,
    "value": false
  },
  "analyticsEnabled": {
    "locked": false,
    "value": true
  },
  "extensionsEnabled": {
    "locked": true,
    "value": false
  },
  "scout": {
    "locked": false,
    "sbomIndexing": true,
    "useBackgroundIndexing": true
  },
  "allowBetaFeatures": {
    "locked": false,
    "value": false
  },
  "blockDockerLoad": {
    "locked": false,
    "value": true
  },
  "filesharingAllowedDirectories": [
    {
      "path": "$HOME",
      "sharedByDefault": true
    },
    {
      "path": "$TMP",
      "sharedByDefault": false
    }
  ],
  "useVirtualizationFrameworkVirtioFS": {
    "locked": true,
    "value": true
  },
  "useVirtualizationFrameworkRosetta": {
    "locked": true,
    "value": true
  },
  "useGrpcfuse": {
    "locked": true,
    "value": true
  },
  "displayedOnboarding": {
    "locked": true,
    "value": true
  },
  "desktopTerminalEnabled": {
    "locked": false,
    "value": false
  },
  "enableInference": {
    "locked": false,
    "value": true
  },
  "enableInferenceTCP": {
    "locked": false,
    "value": true
  },
  "enableInferenceTCPPort": {
    "locked": true,
    "value": 12434
  },
  "enableInferenceCORS": {
    "locked": true,
    "value": ""
  },
  "enableInferenceGPUVariant": {
    "locked": true,
    "value": true
  },
  "portBindingBehavior": {
    "locked": true,
    "value": "default-port-binding"
  }
}

Paso tres: Aplicar los ajustes

Los ajustes surten efecto después de reiniciar Docker Desktop y cuando el usuario inicia sesión.

Para nuevas instalaciones:

  1. Abre Docker Desktop.
  2. Inicia sesión con tu cuenta de Docker.

Para instalaciones existentes:

  1. Cierra Docker Desktop por completo.
  2. Vuelve a iniciar Docker Desktop.
Important

Debes cerrar completamente y volver a abrir Docker Desktop. Reiniciar desde el menú no es suficiente.

Configuraciones de admin-settings.json

Las siguientes tablas describen todos los ajustes disponibles en el archivo admin-settings.json.

Note

Algunos ajustes son específicos de la plataforma o requieren versiones mínimas de Docker Desktop. Revisa la columna Versión para conocer los requisitos.

Ajustes generales

ParámetroSODescripciónVersión
configurationFileVersionEspecifica la versión del formato del archivo de configuración.
analyticsEnabledSi value se establece en false, Docker Desktop no envía estadísticas de uso a Docker.
disableUpdateSi value se establece en true, se desactivan la búsqueda y las notificaciones de actualizaciones de Docker Desktop.
blockDockerLoadSi value se establece en true, los usuarios ya no pueden ejecutar docker load y reciben un error si lo intentan.
displayedOnboardingSi value se establece en true, la encuesta de incorporación no se mostrará a los nuevos usuarios. Establecer value en false no tiene efecto.
desktopTerminalEnabledSi value se establece en false, los desarrolladores no pueden usar la terminal de Docker para interactuar con la máquina host y ejecutar comandos directamente desde Docker Desktop.
exposeDockerAPIOnTCP2375Solo WindowsExpone la API de Docker en un puerto especificado. Si value se establece en true, la API de Docker se expone en el puerto 2375. Nota: Esto no está autenticado y solo debe habilitarse si está protegido por reglas de firewall adecuadas.
silentModulesUpdateSi value se establece en true, Docker Desktop actualiza automáticamente los componentes que no requieren un reinicio. Por ejemplo, los componentes de la CLI de Docker o de Docker Scout.

Extensiones

ParámetroSODescripciónVersión
extensionsEnabledSi value se establece en false, se desactivan las extensiones de Docker.
onlyMarketplaceExtensionsSi value se establece en true, se bloquea a los desarrolladores la instalación de otras extensiones a través de la línea de comandos.
extensionsPrivateMarketplaceSi value se establece en true, se activa el mercado privado (private marketplace), lo que garantiza que Docker Desktop se conecte al contenido definido y controlado por el administrador en lugar del mercado público de Docker.
extensionsPrivateMarketplaceAdminContactURLDefine un enlace de contacto para que los desarrolladores soliciten nuevas extensiones en el mercado privado.

Compartición de archivos y emulación

ParámetroSODescripciónVersión
filesharingAllowedDirectoriesEspecifica a qué rutas pueden agregar recursos compartidos de archivos tus desarrolladores. También acepta $HOME, $TMP o $TEMP como variables de ruta (path). Cuando se añade una ruta, se permiten sus subdirectorios. Si sharedByDefault se establece en true, esa ruta se añadirá al restablecer los valores de fábrica o al iniciar Docker Desktop por primera vez.
useVirtualizationFrameworkVirtioFSSolo macOSSi value se establece en true, se define VirtioFS como el mecanismo de compartición de archivos. Nota: Si tanto useVirtualizationFrameworkVirtioFS como useGrpcfuse tienen value en true, VirtioFS tiene precedencia. De igual manera, si ambos se establecen en false, se define osxfs como el mecanismo de compartición de archivos.
useGrpcfuseSolo macOSSi value se establece en true, se define gRPC Fuse como el mecanismo de compartición de archivos.
useVirtualizationFrameworkRosettaSolo macOSSi value se establece en true, Docker Desktop activa Rosetta para acelerar la emulación binaria de x86_64/amd64 en Apple Silicon. Nota: Esto también habilita automáticamente Use Virtualization framework (Usar framework de virtualización).

Docker Scout

ParámetroSODescripciónVersión
scoutEstablecer useBackgroundIndexing en false desactiva la indexación automática de las imágenes cargadas en el almacén de imágenes. Establecer sbomIndexing en false evita que los usuarios puedan indexar imágenes inspeccionándolas en Docker Desktop o utilizando los comandos de la CLI de docker scout.

Ajustes del Proxy

ParámetroSODescripciónVersión
proxySi mode se establece en system en lugar de manual, Docker Desktop obtiene los valores del proxy del sistema e ignora cualquier valor establecido para http, https y exclude. Cambia mode a manual para configurar manualmente los servidores proxy. Si el puerto del proxy es personalizado, especifícalo en la propiedad http o https, por ejemplo "https": "http://miotroproxy.com:4321". La propiedad exclude especifica una lista separada por comas de hosts y dominios para omitir el proxy.
windowsDockerdPortSolo WindowsExpone localmente el proxy interno de Docker Desktop en este puerto para que se conecte el daemon de Docker de Windows. Si se establece en 0, se elige un puerto libre de forma aleatoria. Si el valor es mayor que 0, se utiliza ese valor exacto para el puerto. El valor predeterminado es -1, lo que desactiva la opción.
enableKerberosNtlmCuando se establece en true, se habilita la autenticación Kerberos y NTLM. El valor por defecto es false. Para obtener más información, consulta la documentación de configuración.
pacEspecifica la URL de un archivo PAC. Por ejemplo, "pac": "http://proxy/proxy.pac".
embeddedPacEspecifica un script PAC (Proxy Auto-config) incrustado. Por ejemplo, "embeddedPac": "function FindProxyForURL(url, host) { return \"DIRECT\"; }". Esta configuración tiene precedencia sobre HTTP, HTTPS, exclusión de proxy y la URL del servidor PAC.

Proxy de contenedores

ParámetroSODescripciónVersión
containersProxyCrea contenedores en entornos aislados (air-gapped). Para obtener más información, consulta Contenedores en entornos aislados (Air-Gapped).
pacEspecifica la URL de un archivo PAC. Por ejemplo, "pac": "http://containerproxy/proxy.pac".
embeddedPacEspecifica un script PAC (Proxy Auto-config) incrustado. Por ejemplo, "embeddedPac": "function FindProxyForURL(url, host) { return \"PROXY 192.168.92.1:2003\"; }". Esta configuración tiene precedencia sobre HTTP, HTTPS, exclusión de proxy y la URL del servidor PAC.

Ajustes de la VM Linux

ParámetroSODescripciónVersión
linuxVMParámetros y ajustes relacionados con las opciones de la VM Linux, agrupados aquí para mayor comodidad.
       wslEngineEnabledSolo WindowsSi value se establece en true, Docker Desktop utiliza el motor basado en WSL 2. Esto anula cualquier valor que se haya podido establecer en la instalación mediante la bandera --backend=<nombre_backend>.
       dockerDaemonOptionsSi value se establece en true, anula las opciones del archivo de configuración del motor de Docker (Docker Engine). Consulta la referencia del motor de Docker. Ten en cuenta que, para mayor seguridad, se pueden anular algunos atributos de configuración cuando el Aislamiento de Contenedores Mejorado está habilitado.
       vpnkitCIDRAnula el rango de red utilizado para DHCP/DNS de vpnkit para *.docker.internal.

Contenedores de Windows

ParámetroSODescripciónVersión
windowsContainersParámetros y ajustes relacionados con las opciones de windowsContainers, agrupados aquí para mayor comodidad.
       dockerDaemonOptionsAnula las opciones en el archivo de configuración del daemon de Linux. Consulta la referencia del motor de Docker.
Note

Este ajuste no está disponible para configurarse a través de la Consola de administración de Docker.

Ajustes de Kubernetes

ParámetroSODescripciónVersión
kubernetesSi enabled se establece en true, se inicia un clúster de nodo único de Kubernetes al iniciar Docker Desktop. Si showSystemContainers se establece en true, los contenedores de Kubernetes se muestran en el Panel (Dashboard) de Docker Desktop y al ejecutar docker ps. El ajuste imagesRepository te permite especificar de qué repositorio descarga Docker Desktop las imágenes del plano de control de Kubernetes.
Note

Al usar imagesRepository con el Aislamiento de Contenedores Mejorado (ECI), añade estas imágenes a la lista de imágenes de montaje de socket de Docker de ECI:

[imagesRepository]/desktop-cloud-provider-kind: [imagesRepository]/desktop-containerd-registry-mirror:

Estos contenedores montan el socket de Docker, por lo que debes añadirlos a la lista de imágenes de ECI. De lo contrario, ECI bloqueará el montaje y Kubernetes no se iniciará.

Ajustes de red

ParámetroSODescripciónVersión
defaultNetworkingModeSolo Windows y MacDefine el protocolo IP predeterminado para las nuevas redes de Docker: dual-stack (IPv4 + IPv6, por defecto), ipv4only o ipv6only.
dnsInhibitionSolo Windows y MacControla el filtrado de registros DNS que se devuelven a los contenedores. Opciones: auto (recomendado), ipv4, ipv6, none.
portBindingBehaviorSolo contenedores LinuxDefine las restricciones de vinculación de puertos y el comportamiento predeterminado, permitiendo a los administradores controlar cómo expone los puertos un usuario desde sus contenedores. Opciones: default-port-binding, default-local-port-binding, local-only-port-binding.Docker Desktop versión 4.52 y posteriores.

Para obtener más información, consulta Redes.

Ajustes de IA

ParámetroSODescripciónVersión
enableInferenceEstablecer enableInference en true habilita Docker Model Runner.
enableInferenceTCPHabilita el soporte TCP en el lado del host. Esta configuración requiere que el ajuste Docker Model Runner esté habilitado primero.
enableInferenceTCPPortEspecifica el puerto TCP expuesto. Esta configuración requiere que los ajustes Docker Model Runner y Habilitar el soporte TCP en el lado del host estén habilitados primero.
enableInferenceCORSEspecifica los orígenes CORS permitidos. Cadena vacía para denegar todos, * para aceptar todos, o una lista de valores separados por comas. Esta configuración requiere que los ajustes Docker Model Runner y Habilitar el soporte TCP en el lado del host estén habilitados primero.
enableInferenceGPUVariantSolo WindowsEstablecer enableInferenceGPUVariant en true habilita la inferencia respaldada por GPU. Los componentes adicionales requeridos para esto no vienen de manera predeterminada con Docker Desktop, por lo tanto se descargarán en ~/.docker/bin/inference.

Características Beta

Important

Para las versiones de Docker Desktop 4.41 y anteriores, algunos de estos ajustes se encontraban bajo la pestaña Experimental features (Características experimentales) en la página Features in development (Características en desarrollo).

ParámetroSODescripciónVersión
allowBetaFeaturesSi value se establece en true, se habilitan las características beta.
enableDockerAISi allowBetaFeatures es true, establecer enableDockerAI en true habilita Gordon por defecto. Puedes controlar de forma independiente esta configuración desde el ajuste allowBetaFeatures.
enableDockerMCPToolkitSi allowBetaFeatures es true, establecer enableDockerMCPToolkit en true habilita la característica MCP Toolkit por defecto. Puedes controlar de forma independiente esta configuración desde el ajuste allowBetaFeatures.
allowExperimentalFeaturesSi value se establece en true, se habilitan las características experimentales.

Aislamiento de Contenedores Mejorado

ParámetroSODescripciónVersión
enhancedContainerIsolationSi value se establece en true, Docker Desktop ejecuta todos los contenedores como no privilegiados, a través del espacio de nombres de usuario de Linux (user namespace), evita que modifiquen configuraciones sensibles dentro de la VM de Docker Desktop y utiliza otras técnicas avanzadas para aislarlos. Para obtener más información, consulta Aislamiento de Contenedores Mejorado.
       dockerSocketMountPor defecto, el aislamiento de contenedores mejorado bloquea el montaje tipo bind del socket de Docker Engine dentro de los contenedores (por ejemplo, docker run -v /var/run/docker.sock:/var/run/docker.sock ...). Esto te permite flexibilizar esto de manera controlada. Consulta Configuración de ECI para obtener más información.
              imageListIndica qué imágenes de contenedor tienen permitido el montaje tipo bind del socket de Docker Engine.
              commandListRestringe los comandos que los contenedores pueden enviar a través del socket de Docker Engine montado mediante bind.