# Configurar un marketplace privado para extensiones





Aprende cómo configurar y establecer un marketplace privado con una lista seleccionada de extensiones para tus usuarios de Docker Desktop.

El marketplace privado de Docker Extensions está diseñado específicamente para organizaciones que no otorgan acceso de root a los desarrolladores en sus máquinas. Utiliza la [Gestión de configuración](/enterprise/security/hardened-desktop/settings-management/) para que los administradores tengan control total sobre el marketplace privado.

## Requisitos previos

- [Descargar e instalar Docker Desktop](https://docs-docker.esdocu.com/desktop/release-notes/).
- Debes ser administrador de tu organización.
- Tienes la capacidad de distribuir la carpeta `extension-marketplace` y el archivo `admin-settings.json` en las ubicaciones especificadas a continuación a través de software de gestión de dispositivos como [Jamf](https://www.jamf.com/).

## Paso uno: Inicializar el marketplace privado

1. Crea una carpeta local para el contenido que se desplegará en las máquinas de tus desarrolladores:

   ```console
   $ mkdir my-marketplace
   $ cd my-marketplace
   ```

2. Inicializa los archivos de configuración para tu marketplace:

   **Mac**



   ```console
   $ /Applications/Docker.app/Contents/Resources/bin/extension-admin init
   ```

   **Windows**



   ```console
   # Para instalaciones para todos los usuarios
   $ C:\Program Files\Docker\Docker\resources\bin\extension-admin init

   # Para instalaciones por usuario
   $ %LOCALAPPDATA%\Programs\DockerDesktop\resources\bin\extension-admin init
   ```

   **Linux**



   ```console
   $ /opt/docker-desktop/extension-admin init
   ```

   

Esto crea 2 archivos:

- `admin-settings.json`, que activa la función de marketplace privado una vez que se aplica a Docker Desktop en las máquinas de tus desarrolladores.
- `extensions.txt`, que determina qué extensiones se mostrarán en tu marketplace privado.

> [!IMPORTANT]
>
> Si tu organización utiliza la [Gestión de configuración](/enterprise/security/hardened-desktop/settings-management/) a través de la [Consola de administración](/extensions/private-marketplace/enterprise/security/hardened-desktop/settings-management/configure-admin-console/), no necesitarás el archivo `admin-settings.json`. Elimina el archivo generado y conserva únicamente el archivo `extensions.txt`.

## Paso dos: Establecer el comportamiento

El archivo `admin-settings.json` generado incluye varias configuraciones que puedes modificar.

> [!IMPORTANT]
>
> Si tu organización gestiona la configuración a través de la [Consola de administración](/extensions/private-marketplace/enterprise/security/hardened-desktop/settings-management/configure-admin-console/), definirás estas mismas configuraciones en la Consola de administración en lugar de en el archivo `admin-settings.json`.

Cada configuración tiene un campo `value` que puedes establecer, incluyendo un campo `locked` que te permite bloquear la configuración y hacer que los desarrolladores no puedan cambiarla.

- `extensionsEnabled` activa las extensiones de Docker.
- `extensionsPrivateMarketplace` activa el marketplace privado y garantiza que Docker Desktop se conecte al contenido definido y controlado por el administrador en lugar del marketplace público de Docker.
- `onlyMarketplaceExtensions` permite o bloquea a los desarrolladores la instalación de otras extensiones mediante la línea de comandos. Los equipos que desarrollan nuevas extensiones deben tener esta configuración desbloqueada (`"locked": false`) para instalar y probar las extensiones en desarrollo.
- `extensionsPrivateMarketplaceAdminContactURL` define un enlace de contacto para que los desarrolladores soliciten nuevas extensiones en el marketplace privado. Si el valor `value` está vacío, no se mostrará ningún enlace a tus desarrolladores en Docker Desktop; de lo contrario, puede ser un enlace HTTP o un enlace "mailto:". Por ejemplo,

  ```json
  "extensionsPrivateMarketplaceAdminContactURL": {
    "locked": true,
    "value": "mailto:admin@acme.com"
  }
  ```

Para obtener más información sobre el archivo `admin-settings.json`, consulta [Gestión de configuración](/enterprise/security/hardened-desktop/settings-management/).

## Paso tres: Listar las extensiones permitidas

El archivo `extensions.txt` generado define la lista de extensiones disponibles en tu marketplace privado.

Cada línea del archivo es una extensión permitida y sigue el formato de `org/repo:tag`.

Por ejemplo, si deseas permitir la extensión Disk Usage, debes introducir lo siguiente en tu archivo `extensions.txt`:

```console
docker/disk-usage-extension:0.2.8
```

Si no se proporciona ninguna etiqueta (tag), se utiliza la etiqueta `latest` disponible para la imagen. También puedes comentar líneas con `#` para que la extensión sea ignorada.

Esta lista puede incluir diferentes tipos de imágenes de extensiones:

- Extensiones del marketplace público o cualquier imagen pública almacenada en Docker Hub.
- Imágenes de extensiones almacenadas en Docker Hub como imágenes privadas. Los desarrolladores deben iniciar sesión y tener acceso de lectura (pull) a estas imágenes.
- Imágenes de extensiones almacenadas en un registro privado. Los desarrolladores deben iniciar sesión y tener acceso de lectura (pull) a estas imágenes.

> [!IMPORTANT]
>
> Tus desarrolladores únicamente pueden instalar la versión de la extensión que hayas listado.

## Paso cuatro: Generar el marketplace privado

Una vez que la lista en `extensions.txt` esté lista, puedes generar el marketplace:

**Mac**



```console
$ /Applications/Docker.app/Contents/Resources/bin/extension-admin generate
```

**Windows**



```console
# Para instalaciones para todos los usuarios
$ C:\Program Files\Docker\Docker\resources\bin\extension-admin generate

# Para instalaciones por usuario
$ %LOCALAPPDATA%\Programs\DockerDesktop\resources\bin\extension-admin generate
```

**Linux**



```console
$ /opt/docker-desktop/extension-admin generate
```



Esto crea un directorio `extension-marketplace` y descarga los metadatos del marketplace para todas las extensiones permitidas.

El contenido del marketplace se genera a partir de la información de las imágenes de las extensiones configurada como etiquetas de imagen (labels), que es el [mismo formato utilizado por las extensiones públicas](/extensions/private-marketplace/extensions-sdk/extensions/labels/). Incluye el título de la extensión, descripción, capturas de pantalla, enlaces, etc.

## Paso cinco: Probar la configuración del marketplace privado

Se recomienda probar el marketplace privado en tu propia instalación de Docker Desktop.

1. Ejecuta el siguiente comando en tu terminal. Este comando copia automáticamente los archivos generados a la ubicación donde Docker Desktop lee los archivos de configuración. Dependiendo de tu sistema operativo, la ubicación es:
   - Mac: `/Library/Application\ Support/com.docker.docker`
   - Windows: `C:\ProgramData\DockerDesktop`
   - Linux: `/usr/share/docker-desktop`

   **Mac**



   ```console
   $ sudo /Applications/Docker.app/Contents/Resources/bin/extension-admin apply
   ```

   **Windows (ejecutar como admin)**



   ```console
   # Para instalaciones para todos los usuarios
   $ C:\Program Files\Docker\Docker\resources\bin\extension-admin apply

   # Para instalaciones por usuario
   $ %LOCALAPPDATA%\Programs\DockerDesktop\resources\bin\extension-admin apply
   ```

   **Linux**



   ```console
   $ sudo /opt/docker-desktop/extension-admin apply
   ```

   

2. Cierra y vuelve a abrir Docker Desktop.
3. Inicia sesión con una cuenta de Docker.

> [!IMPORTANT]
>
> Si tu organización gestiona la configuración a través de la [Consola de administración](/extensions/private-marketplace/enterprise/security/hardened-desktop/settings-management/configure-admin-console/), en Docker Desktop 4.59 y versiones anteriores, debes eliminar manualmente el archivo `admin-settings.json` creado en la carpeta de destino por el comando `apply` antes del paso 2. En Docker Desktop 4.60 y versiones posteriores, este paso ya no es necesario.

Al seleccionar la pestaña **Extensions**, deberías ver que el marketplace privado enumera únicamente las extensiones que has permitido en `extensions.txt`.

![Extensions Private Marketplace](/assets/images/extensions-private-marketplace.webp)

## Paso seis: Distribuir el marketplace privado

Una vez que hayas confirmado que la configuración del marketplace privado funciona, el último paso consiste en distribuir los archivos a las máquinas de los desarrolladores con el software MDM que utilice tu organización. Por ejemplo, [Jamf](https://www.jamf.com/).

Los archivos a distribuir son:

- `admin-settings.json` (excepto si tu organización gestiona la configuración a través de la [Consola de administración](/extensions/private-marketplace/enterprise/security/hardened-desktop/settings-management/configure-admin-console/))
- la carpeta completa `extension-marketplace` y sus subcarpetas

Estos archivos se deben colocar en las máquinas de los desarrolladores. Según el sistema operativo, la ubicación de destino es (como se mencionó anteriormente):

- Mac: `/Library/Application\ Support/com.docker.docker`
- Windows: `C:\ProgramData\DockerDesktop`
- Linux: `/usr/share/docker-desktop`

Asegúrate de que tus desarrolladores inicien sesión en Docker Desktop para que se aplique la configuración del marketplace privado. Como administrador, deberías [obligar el inicio de sesión](/enterprise/security/enforce-sign-in/).

## Comentarios

Envía tus comentarios o notifica cualquier error que encuentres escribiendo por correo electrónico a `extensions@docker.com`.

