# Extensiones fuera del Marketplace


## Instalar una extensión no disponible en el Marketplace

> [!WARNING]
>
> Las extensiones instaladas fuera del Marketplace no han pasado por el proceso de revisión de Docker. Al igual que todas las extensiones de Docker, se ejecutan con privilegios a nivel de host. Pueden instalar binarios, acceder al Docker Engine, invocar comandos y acceder a archivos en tu máquina. Instálalas solo si confías en el desarrollador y has verificado la fuente.

El Marketplace de extensiones es el lugar oficial y de confianza para instalar extensiones desde Docker Desktop. Estas extensiones han pasado por un proceso de revisión por parte de Docker. Sin embargo, también se pueden instalar otras extensiones en Docker Desktop si confías en el autor de la extensión.

Dada la naturaleza de una extensión de Docker (es decir, una imagen de Docker), puedes encontrar otros lugares donde los usuarios tienen publicado el código fuente de su extensión. Por ejemplo, en GitHub, GitLab o incluso alojada en registros de imágenes como Docker Hub o GHCR.
Puedes instalar una extensión que haya sido desarrollada por la comunidad o internamente en tu empresa por un compañero de equipo. No estás limitado a instalar extensiones solo desde el Marketplace.

> [!NOTE]
>
> Asegúrate de que la opción **Allow only extensions distributed through the Docker Marketplace** esté desactivada. De lo contrario, esto impedirá que se instale cualquier extensión que no figure en el Marketplace a través de las herramientas del SDK de extensiones.
> Puedes cambiar esta opción en **Settings**.

Para instalar una extensión que no está presente en el Marketplace, puedes utilizar la CLI de extensiones que viene integrada con Docker Desktop.

En una terminal, escribe `docker extension install IMAGE[:TAG]` para instalar una extensión mediante su referencia de imagen y, opcionalmente, una etiqueta. Utiliza la bandera `-f` o `--force` para evitar la confirmación interactiva.

Ve al Panel de Docker Desktop para ver la nueva extensión instalada.

## Listar extensiones instaladas

Independientemente de si la extensión se instaló desde el Marketplace o manualmente utilizando la CLI de extensiones, puedes usar el comando `docker extension ls` para mostrar la lista de extensiones instaladas.
Como parte de la salida, verás el ID de la extensión, el proveedor (provider), la versión, el título y si ejecuta un contenedor de backend o ha desplegado binarios en el host, por ejemplo:

```console
$ docker extension ls
ID                  PROVIDER            VERSION             UI                    VM                  HOST
john/my-extension   John                latest              1 tab(My-Extension)   Running(1)          -
```

Ve al Panel de Docker Desktop, selecciona **Add Extensions** y en la pestaña **Managed** para ver la nueva extensión instalada.
Observa que se muestra la etiqueta **UNPUBLISHED**, lo que indica que la extensión no ha sido instalada desde el Marketplace.

## Actualizar una extensión

Para actualizar una extensión que no está presente en el Marketplace, en una terminal escribe `docker extension update IMAGE[:TAG]` donde la etiqueta `TAG` debe ser diferente de la de la extensión que ya está instalada.

Por ejemplo, si instalaste una extensión con `docker extension install john/my-extension:0.0.1`, puedes actualizarla ejecutando `docker extension update john/my-extension:0.0.2`.
Ve al Panel de Docker Desktop para ver la nueva extensión actualizada.

> [!NOTE]
>
> Las extensiones que no se instalan a través del Marketplace no reciben notificaciones de actualización de Docker Desktop.

## Desinstalar una extensión

Para desinstalar una extensión que no está presente en el Marketplace, puedes navegar a la pestaña **Managed** en el Marketplace y seleccionar el botón **Uninstall**, o desde una terminal escribir `docker extension uninstall IMAGE[:TAG]`.

