Configurar la Gestión de Ajustes con un archivo JSON
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 imposición del inicio de sesión habilitada para tu organización.
- Una suscripción de Docker Business.
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-settingspara generar automáticamente el archivo: - 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
- Mac:
ImportantColoca 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
TipPara 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
lockedse establece entrue, los usuarios no pueden cambiar ese valor en Docker Desktop, la CLI o los archivos de configuración. - Cuando
lockedse establece enfalse, 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:
- Establece el interruptor principal para habilitar la característica.
- Configura los subajustes dentro de ese grupo.
- 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:
- Abre Docker Desktop.
- Inicia sesión con tu cuenta de Docker.
Para instalaciones existentes:
- Cierra Docker Desktop por completo.
- Vuelve a iniciar Docker Desktop.
ImportantDebes 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.
NoteAlgunos 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ámetro | SO | Descripción | Versión |
|---|---|---|---|
configurationFileVersion | Especifica la versión del formato del archivo de configuración. | ||
analyticsEnabled | Si value se establece en false, Docker Desktop no envía estadísticas de uso a Docker. | ||
disableUpdate | Si value se establece en true, se desactivan la búsqueda y las notificaciones de actualizaciones de Docker Desktop. | ||
blockDockerLoad | Si value se establece en true, los usuarios ya no pueden ejecutar
docker load y reciben un error si lo intentan. | ||
displayedOnboarding | Si value se establece en true, la encuesta de incorporación no se mostrará a los nuevos usuarios. Establecer value en false no tiene efecto. | ||
desktopTerminalEnabled | Si 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. | ||
exposeDockerAPIOnTCP2375 | Solo Windows | Expone 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. | |
silentModulesUpdate | Si 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ámetro | SO | Descripción | Versión |
|---|---|---|---|
extensionsEnabled | Si value se establece en false, se desactivan las extensiones de Docker. | ||
onlyMarketplaceExtensions | Si 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. | ||
extensionsPrivateMarketplace | Si 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. | ||
extensionsPrivateMarketplaceAdminContactURL | Define un enlace de contacto para que los desarrolladores soliciten nuevas extensiones en el mercado privado. |
Compartición de archivos y emulación
| Parámetro | SO | Descripción | Versión |
|---|---|---|---|
filesharingAllowedDirectories | Especifica 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. | ||
useVirtualizationFrameworkVirtioFS | Solo macOS | Si 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. | |
useGrpcfuse | Solo macOS | Si value se establece en true, se define gRPC Fuse como el mecanismo de compartición de archivos. | |
useVirtualizationFrameworkRosetta | Solo macOS | Si 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ámetro | SO | Descripción | Versión |
|---|---|---|---|
scout | Establecer 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ámetro | SO | Descripción | Versión |
|---|---|---|---|
proxy | Si 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. | ||
windowsDockerdPort | Solo Windows | Expone 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. | |
enableKerberosNtlm | Cuando 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. | ||
pac | Especifica la URL de un archivo PAC. Por ejemplo, "pac": "http://proxy/proxy.pac". | ||
embeddedPac | Especifica 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ámetro | SO | Descripción | Versión |
|---|---|---|---|
containersProxy | Crea contenedores en entornos aislados (air-gapped). Para obtener más información, consulta Contenedores en entornos aislados (Air-Gapped). | ||
pac | Especifica la URL de un archivo PAC. Por ejemplo, "pac": "http://containerproxy/proxy.pac". | ||
embeddedPac | Especifica 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ámetro | SO | Descripción | Versión |
|---|---|---|---|
linuxVM | Parámetros y ajustes relacionados con las opciones de la VM Linux, agrupados aquí para mayor comodidad. | ||
wslEngineEnabled | Solo Windows | Si 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>. | |
dockerDaemonOptions | Si 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. | ||
vpnkitCIDR | Anula el rango de red utilizado para DHCP/DNS de vpnkit para *.docker.internal. |
Contenedores de Windows
| Parámetro | SO | Descripción | Versión |
|---|---|---|---|
windowsContainers | Parámetros y ajustes relacionados con las opciones de windowsContainers, agrupados aquí para mayor comodidad. | ||
dockerDaemonOptions | Anula las opciones en el archivo de configuración del daemon de Linux. Consulta la referencia del motor de Docker. |
NoteEste ajuste no está disponible para configurarse a través de la Consola de administración de Docker.
Ajustes de Kubernetes
| Parámetro | SO | Descripción | Versión |
|---|---|---|---|
kubernetes | Si 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. |
NoteAl usar
imagesRepositorycon 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ámetro | SO | Descripción | Versión |
|---|---|---|---|
defaultNetworkingMode | Solo Windows y Mac | Define el protocolo IP predeterminado para las nuevas redes de Docker: dual-stack (IPv4 + IPv6, por defecto), ipv4only o ipv6only. | |
dnsInhibition | Solo Windows y Mac | Controla el filtrado de registros DNS que se devuelven a los contenedores. Opciones: auto (recomendado), ipv4, ipv6, none. | |
portBindingBehavior | Solo contenedores Linux | Define 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ámetro | SO | Descripción | Versión |
|---|---|---|---|
enableInference | Establecer enableInference en true habilita
Docker Model Runner. | ||
enableInferenceTCP | Habilita el soporte TCP en el lado del host. Esta configuración requiere que el ajuste Docker Model Runner esté habilitado primero. | ||
enableInferenceTCPPort | Especifica 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. | ||
enableInferenceCORS | Especifica 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. | ||
enableInferenceGPUVariant | Solo Windows | Establecer 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
ImportantPara 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ámetro | SO | Descripción | Versión |
|---|---|---|---|
allowBetaFeatures | Si value se establece en true, se habilitan las características beta. | ||
enableDockerAI | Si allowBetaFeatures es true, establecer enableDockerAI en true habilita
Gordon por defecto. Puedes controlar de forma independiente esta configuración desde el ajuste allowBetaFeatures. | ||
enableDockerMCPToolkit | Si 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. | ||
allowExperimentalFeatures | Si value se establece en true, se habilitan las características experimentales. |
Aislamiento de Contenedores Mejorado
| Parámetro | SO | Descripción | Versión |
|---|---|---|---|
enhancedContainerIsolation | Si 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. | ||
dockerSocketMount | Por 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. | ||
imageList | Indica qué imágenes de contenedor tienen permitido el montaje tipo bind del socket de Docker Engine. | ||
commandList | Restringe los comandos que los contenedores pueden enviar a través del socket de Docker Engine montado mediante bind. |