# Interfaz: DockerDesktopClient


Una amalgama de las interfaces v0 y v1 del cliente de la API de Docker Desktop,
provista por razones de compatibilidad con versiones anteriores. A menos que estés trabajando con
una extensión heredada (legacy), usa el tipo v1 en su lugar.

## Propiedades

### backend

• `Readonly` **backend**: `undefined` \| [`BackendV0`](/reference/api/extensions-sdk/DockerDesktopClient/BackendV0/)

El objeto `window.ddClient.backend` se puede usar para comunicarse con el backend definido en la sección vm de
los metadatos de la extensión.
El cliente ya está conectado al backend.

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [extension](/reference/api/extensions-sdk/DockerDesktopClient/DockerDesktopClient/#extension) en su lugar.

#### Heredado de

DockerDesktopClientV0.backend

---

### extension

• `Readonly` **extension**: [`Extension`](/reference/api/extensions-sdk/DockerDesktopClient/Extension/)

El objeto `ddClient.extension` se puede usar para comunicarse con el backend definido en la sección vm de los
metadatos de la extensión.
El cliente ya está conectado al backend.

#### Heredado de

DockerDesktopClientV1.extension

---

### desktopUI

• `Readonly` **desktopUI**: [`DesktopUI`](/reference/api/extensions-sdk/DockerDesktopClient/DesktopUI/)

#### Heredado de

DockerDesktopClientV1.desktopUI

---

### host

• `Readonly` **host**: [`Host`](/reference/api/extensions-sdk/DockerDesktopClient/Host/)

#### Heredado de

DockerDesktopClientV1.host

---

### docker

• `Readonly` **docker**: [`Docker`](/reference/api/extensions-sdk/DockerDesktopClient/Docker/)

#### Heredado de

DockerDesktopClientV1.docker

## Métodos de contenedor

### listContainers

▸ **listContainers**(`options`): `Promise`<`unknown`\>

Obtiene la lista de contenedores en ejecución (igual que `docker ps`).

Por defecto, esto no enumerará los contenedores detenidos.
Puedes usar la opción `{"all": true}` para enumerar todos los contenedores en ejecución y detenidos.

```typescript
const containers = await window.ddClient.listContainers();
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [listContainers](/reference/api/extensions-sdk/DockerDesktopClient/Docker/#listcontainers) en su lugar.

#### Parámetros

| Nombre    | Tipo    | Descripción                                                                                                                                                                                                                                                                                                                                         |
| :-------- | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `options` | `never` | (Opcional). Un JSON como `{ "all": true, "limit": 10, "size": true, "filters": JSON.stringify({ status: ["exited"] }), }`. Para obtener más información sobre las diferentes propiedades, consulta [la documentación del endpoint de la API de Docker](https://docs-docker.esdocu.com/reference/api/engine/version/v1.52/#operation/ContainerList). |

#### Devuelve

`Promise`<`unknown`\>

#### Heredado de

DockerDesktopClientV0.listContainers

---

## Métodos de imagen

### listImages

▸ **listImages**(`options`): `Promise`<`unknown`\>

Obtiene la lista de imágenes

```typescript
const images = await window.ddClient.listImages();
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [listImages](/reference/api/extensions-sdk/DockerDesktopClient/Docker/#listimages) en su lugar.

#### Parámetros

| Nombre    | Tipo    | Descripción                                                                                                                                                                                                                                                                                                                |
| :-------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `options` | `never` | (Opcional). Un JSON como `{ "all": true, "filters": JSON.stringify({ dangling: ["true"] }), "digests": true }`. Para obtener más información sobre las diferentes propiedades, consulta [la documentación del endpoint de la API de Docker](https://docs-docker.esdocu.com/reference/api/engine/version/v1.52/#tag/Image). |

#### Devuelve

`Promise`<`unknown`\>

#### Heredado de

DockerDesktopClientV0.listImages

---

## Métodos de navegación

### navigateToContainers

▸ **navigateToContainers**(): `void`

Navega a la ventana de contenedores en Docker Desktop.

```typescript
window.ddClient.navigateToContainers();
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [viewContainers](/reference/api/extensions-sdk/DockerDesktopClient/NavigationIntents/#viewcontainers) en su lugar.

#### Devuelve

`void`

#### Heredado de

DockerDesktopClientV0.navigateToContainers

---

### navigateToContainer

▸ **navigateToContainer**(`id`): `Promise`<`any`\>

Navega a la ventana del contenedor en Docker Desktop.

```typescript
await window.ddClient.navigateToContainer(id);
```

> [!WARNING]
>
> Se eliminará en una versión futura.

#### Parámetros

| Nombre | Tipo     | Descripción                                                                                                                                                                                                                       |
| :----- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`   | `string` | El id completo del contenedor, por ejemplo, `46b57e400d801762e9e115734bf902a2450d89669d85881058a46136520aca28`. Puedes usar la opción `--no-trunc` como parte del comando `docker ps` para mostrar el id completo del contenedor. |

#### Devuelve

`Promise`<`any`\>

Una promesa que falla si el contenedor no existe.

#### Heredado de

DockerDesktopClientV0.navigateToContainer

---

### navigateToContainerLogs

▸ **navigateToContainerLogs**(`id`): `Promise`<`any`\>

Navega a la ventana de logs del contenedor en Docker Desktop.

```typescript
await window.ddClient.navigateToContainerLogs(id);
```

> [!WARNING]
>
> Se eliminará en una versión futura.

#### Parámetros

| Nombre | Tipo     | Descripción                                                                                                                                                                                                                       |
| :----- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`   | `string` | El id completo del contenedor, por ejemplo, `46b57e400d801762e9e115734bf902a2450d89669d85881058a46136520aca28`. Puedes usar la opción `--no-trunc` como parte del comando `docker ps` para mostrar el id completo del contenedor. |

#### Devuelve

`Promise`<`any`\>

Una promesa que falla si el contenedor no existe.

#### Heredado de

DockerDesktopClientV0.navigateToContainerLogs

---

### navigateToContainerInspect

▸ **navigateToContainerInspect**(`id`): `Promise`<`any`\>

Navega a la ventana de inspección (inspect) del contenedor en Docker Desktop.

```typescript
await window.ddClient.navigateToContainerInspect(id);
```

> [!WARNING]
>
> Se eliminará en una versión futura.

#### Parámetros

| Nombre | Tipo     | Descripción                                                                                                                                                                                                                       |
| :----- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`   | `string` | El id completo del contenedor, por ejemplo, `46b57e400d801762e9e115734bf902a2450d89669d85881058a46136520aca28`. Puedes usar la opción `--no-trunc` como parte del comando `docker ps` para mostrar el id completo del contenedor. |

#### Devuelve

`Promise`<`any`\>

Una promesa que falla si el contenedor no existe.

#### Heredado de

DockerDesktopClientV0.navigateToContainerInspect

---

### navigateToContainerStats

▸ **navigateToContainerStats**(`id`): `Promise`<`any`\>

Navega a las estadísticas del contenedor para ver el uso de CPU, memoria, lectura/escritura de disco e E/S de red.

```typescript
await window.ddClient.navigateToContainerStats(id);
```

> [!WARNING]
>
> Se eliminará en una versión futura.

#### Parámetros

| Nombre | Tipo     | Descripción                                                                                                                                                                                                                       |
| :----- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`   | `string` | El id completo del contenedor, por ejemplo, `46b57e400d801762e9e115734bf902a2450d89669d85881058a46136520aca28`. Puedes usar la opción `--no-trunc` como parte del comando `docker ps` para mostrar el id completo del contenedor. |

#### Devuelve

`Promise`<`any`\>

Una promesa que falla si el contenedor no existe.

#### Heredado de

DockerDesktopClientV0.navigateToContainerStats

---

### navigateToImages

▸ **navigateToImages**(): `void`

Navega a la ventana de imágenes en Docker Desktop.

```typescript
await window.ddClient.navigateToImages(id);
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [viewImages](/reference/api/extensions-sdk/DockerDesktopClient/NavigationIntents/#viewimages) en su lugar.

#### Devuelve

`void`

#### Heredado de

DockerDesktopClientV0.navigateToImages

---

### navigateToImage

▸ **navigateToImage**(`id`, `tag`): `Promise`<`any`\>

Navega a una imagen específica referenciada por `id` y `tag` en Docker Desktop.
En esta ruta de navegación puedes encontrar las capas de la imagen, los comandos, la fecha de creación y el tamaño.

```typescript
await window.ddClient.navigateToImage(id, tag);
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [viewImage](/reference/api/extensions-sdk/DockerDesktopClient/NavigationIntents/#viewimage) en su lugar.

#### Parámetros

| Nombre | Tipo     | Descripción                                                                                                                              |
| :----- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------- |
| `id`   | `string` | El id completo de la imagen (incluyendo el sha), por ejemplo, `sha256:34ab3ae068572f4e85c448b4035e6be5e19cc41f69606535cd4d768a63432673`. |
| `tag`  | `string` | La etiqueta de la imagen, por ejemplo, `latest`, `0.0.1`, etc.                                                                           |

#### Devuelve

`Promise`<`any`\>

Una promesa que falla si el contenedor no existe.

#### Heredado de

DockerDesktopClientV0.navigateToImage

---

### navigateToVolumes

▸ **navigateToVolumes**(): `void`

Navega a la ventana de volúmenes en Docker Desktop.

```typescript
await window.ddClient.navigateToVolumes();
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [viewVolumes](/reference/api/extensions-sdk/DockerDesktopClient/NavigationIntents/#viewvolumes) en su lugar.

#### Devuelve

`void`

#### Heredado de

DockerDesktopClientV0.navigateToVolumes

---

### navigateToVolume

▸ **navigateToVolume**(`volume`): `void`

Navega a un volumen específico en Docker Desktop.

```typescript
window.ddClient.navigateToVolume(volume);
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [viewVolume](/reference/api/extensions-sdk/DockerDesktopClient/NavigationIntents/#viewvolume) en su lugar.

#### Parámetros

| Nombre   | Tipo     | Descripción                                      |
| :------- | :------- | :----------------------------------------------- |
| `volume` | `string` | El nombre del volumen, por ejemplo, `my-volume`. |

#### Devuelve

`void`

#### Heredado de

DockerDesktopClientV0.navigateToVolume

---

## Otros métodos

### execHostCmd

▸ **execHostCmd**(`cmd`): `Promise`<[`ExecResultV0`](/reference/api/extensions-sdk/DockerDesktopClient/ExecResultV0/)\>

Invoca un binario en el host. El binario generalmente se incluye con tu extensión usando la sección host en los metadatos de la extensión. Ten en cuenta que las extensiones se ejecutan con derechos de acceso de usuario; esta API no está restringida a los binarios enumerados en la sección host de los metadatos de la extensión (algunas extensiones podrían instalar software durante la interacción del usuario e invocar binarios recién instalados incluso si no están enumerados en los metadatos de la extensión).

```typescript
window.ddClient.execHostCmd(`cliShippedOnHost xxx`).then((cmdResult: any) => {
  console.log(cmdResult);
});
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [exec](/reference/api/extensions-sdk/DockerDesktopClient/ExtensionCli/#exec) en su lugar.

#### Parámetros

| Nombre | Tipo     | Descripción            |
| :----- | :------- | :--------------------- |
| `cmd`  | `string` | El comando a ejecutar. |

#### Devuelve

`Promise`<[`ExecResultV0`](/reference/api/extensions-sdk/DockerDesktopClient/ExecResultV0/)\>

#### Heredado de

DockerDesktopClientV0.execHostCmd

---

### spawnHostCmd

▸ **spawnHostCmd**(`cmd`, `args`, `callback`): `void`

Invoca un binario de extensión en tu host y obtiene el flujo de salida.

```typescript
window.ddClient.spawnHostCmd(
  `cliShippedOnHost`,
  [`arg1`, `arg2`],
  (data: any, err: any) => {
    console.log(data.stdout, data.stderr);
    // Once the command exits we get the status code
    if (data.code) {
      console.log(data.code);
    }
  },
);
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [exec](/reference/api/extensions-sdk/DockerDesktopClient/ExtensionCli/#exec) en su lugar.

#### Parámetros

| Nombre     | Tipo                                      | Descripción                                                                         |
| :--------- | :---------------------------------------- | :---------------------------------------------------------------------------------- |
| `cmd`      | `string`                                  | El comando a ejecutar.                                                              |
| `args`     | `string`[]                                | Los argumentos del comando a ejecutar.                                              |
| `callback` | (`data`: `any`, `error`: `any`) => `void` | La función de callback para escuchar los datos de salida del comando y los errores. |

#### Devuelve

`void`

#### Heredado de

DockerDesktopClientV0.spawnHostCmd

---

### execDockerCmd

▸ **execDockerCmd**(`cmd`, `...args`): `Promise`<[`ExecResultV0`](/reference/api/extensions-sdk/DockerDesktopClient/ExecResultV0/)\>

También puedes ejecutar directamente el binario de Docker.

```typescript
const output = await window.ddClient.execDockerCmd("info");
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [exec](/reference/api/extensions-sdk/DockerDesktopClient/DockerCommand/#exec) en su lugar.

#### Parámetros

| Nombre    | Tipo       | Descripción                            |
| :-------- | :--------- | :------------------------------------- |
| `cmd`     | `string`   | El comando a ejecutar.                 |
| `...args` | `string`[] | Los argumentos del comando a ejecutar. |

#### Devuelve

`Promise`<[`ExecResultV0`](/reference/api/extensions-sdk/DockerDesktopClient/ExecResultV0/)\>

El resultado contendrá tanto la salida estándar como el error estándar del comando ejecutado:

```json
{
  "stderr": "...",
  "stdout": "..."
}
```

Para mayor comodidad, el objeto de resultado del comando también tiene métodos para analizarlo fácilmente según el formato de salida:

- `output.lines(): string[]` divide las líneas de salida.
- `output.parseJsonObject(): any` analiza una salida JSON bien formateada.
- `output.parseJsonLines(): any[]` analiza cada línea de salida como un objeto JSON.

Si la salida del comando es demasiado larga o necesitas obtener la salida en forma de flujo, puedes usar la

- función spawnDockerCmd:

```typescript
window.ddClient.spawnDockerCmd("logs", ["-f", "..."], (data, error) => {
  console.log(data.stdout);
});
```

#### Heredado de

DockerDesktopClientV0.execDockerCmd

---

### spawnDockerCmd

▸ **spawnDockerCmd**(`cmd`, `args`, `callback`): `void`

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [exec](/reference/api/extensions-sdk/DockerDesktopClient/DockerCommand/#exec) en su lugar.

#### Parámetros

| Nombre     | Tipo                                      |
| :--------- | :---------------------------------------- |
| `cmd`      | `string`                                  |
| `args`     | `string`[]                                |
| `callback` | (`data`: `any`, `error`: `any`) => `void` |

#### Devuelve

`void`

#### Heredado de

DockerDesktopClientV0.spawnDockerCmd

---

### openExternal

▸ **openExternal**(`url`): `void`

Abre una URL externa con el navegador predeterminado del sistema.

```typescript
window.ddClient.openExternal("https://docker.com");
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [openExternal](/reference/api/extensions-sdk/DockerDesktopClient/Host/#openexternal) en su lugar.

#### Parámetros

| Nombre | Tipo     | Descripción                                                              |
| :----- | :------- | :----------------------------------------------------------------------- |
| `url`  | `string` | La URL que abre el navegador (debe tener el protocolo `http` o `https`). |

#### Devuelve

`void`

#### Heredado de

DockerDesktopClientV0.openExternal

---

## Métodos de toast

### toastSuccess

▸ **toastSuccess**(`msg`): `void`

Muestra un mensaje toast de tipo éxito.

```typescript
window.ddClient.toastSuccess("message");
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [success](/reference/api/extensions-sdk/DockerDesktopClient/Toast/#success) en su lugar.

#### Parámetros

| Nombre | Tipo     | Descripción                       |
| :----- | :------- | :-------------------------------- |
| `msg`  | `string` | El mensaje a mostrar en el toast. |

#### Devuelve

`void`

#### Heredado de

DockerDesktopClientV0.toastSuccess

---

### toastWarning

▸ **toastWarning**(`msg`): `void`

Muestra un mensaje toast de tipo advertencia.

```typescript
window.ddClient.toastWarning("message");
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [warning](/reference/api/extensions-sdk/DockerDesktopClient/Toast/#warning) en su lugar.

#### Parámetros

| Nombre | Tipo     | Descripción                       |
| :----- | :------- | :-------------------------------- |
| `msg`  | `string` | El mensaje a mostrar en el toast. |

#### Devuelve

`void`

#### Heredado de

DockerDesktopClientV0.toastWarning

---

### toastError

▸ **toastError**(`msg`): `void`

Muestra un mensaje toast de tipo error.

```typescript
window.ddClient.toastError("message");
```

> [!WARNING]
>
> Se eliminará en una versión futura. Usa [error](/reference/api/extensions-sdk/DockerDesktopClient/Toast/#error) en su lugar.

#### Parámetros

| Nombre | Tipo     | Descripción                       |
| :----- | :------- | :-------------------------------- |
| `msg`  | `string` | El mensaje a mostrar en el toast. |

#### Devuelve

`void`

#### Heredado de

DockerDesktopClientV0.toastError

