--- title: "Interface: DockerDesktopClient" description: Docker extension API reference keywords: Docker, extensions, sdk, API, reference aliases: - /desktop/extensions-sdk/dev/api/reference/interfaces/DockerDesktopClient/ - /extensions/extensions-sdk/dev/api/reference/interfaces/DockerDesktopClient/ --- An amalgam of the v0 and v1 interfaces of the Docker Desktop API client, provided for backwards compatibility reasons. Unless you're working with a legacy extension, use the v1 type instead. ## Properties ### backend • `Readonly` **backend**: `undefined` \| [`BackendV0`](BackendV0.md) The `window.ddClient.backend` object can be used to communicate with the backend defined in the vm section of the extension metadata. The client is already connected to the backend. > [!WARNING] > > It will be removed in a future version. Use [extension](DockerDesktopClient.md#extension) instead. #### Inherited from DockerDesktopClientV0.backend ___ ### extension • `Readonly` **extension**: [`Extension`](Extension.md) The `ddClient.extension` object can be used to communicate with the backend defined in the vm section of the extension metadata. The client is already connected to the backend. #### Inherited from DockerDesktopClientV1.extension ___ ### desktopUI • `Readonly` **desktopUI**: [`DesktopUI`](DesktopUI.md) #### Inherited from DockerDesktopClientV1.desktopUI ___ ### host • `Readonly` **host**: [`Host`](Host.md) #### Inherited from DockerDesktopClientV1.host ___ ### docker • `Readonly` **docker**: [`Docker`](Docker.md) #### Inherited from DockerDesktopClientV1.docker ## Container Methods ### listContainers ▸ **listContainers**(`options`): `Promise`<`unknown`\> Get the list of running containers (same as `docker ps`). By default, this will not list stopped containers. You can use the option `{"all": true}` to list all the running and stopped containers. ```typescript const containers = await window.ddClient.listContainers(); ``` > [!WARNING] > > It will be removed in a future version. Use [listContainers](Docker.md#listcontainers) instead. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `options` | `never` | (Optional). A JSON like `{ "all": true, "limit": 10, "size": true, "filters": JSON.stringify({ status: ["exited"] }), }` For more information about the different properties see [the Docker API endpoint documentation](https://docs.docker.com/engine/api/v1.41/#operation/ContainerList). | #### Returns `Promise`<`unknown`\> #### Inherited from DockerDesktopClientV0.listContainers ___ ## Image Methods ### listImages ▸ **listImages**(`options`): `Promise`<`unknown`\> Get the list of images ```typescript const images = await window.ddClient.listImages(); ``` > [!WARNING] > > It will be removed in a future version. Use [listImages](Docker.md#listimages) instead. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `options` | `never` | (Optional). A JSON like `{ "all": true, "filters": JSON.stringify({ dangling: ["true"] }), "digests": true }` For more information about the different properties see [the Docker API endpoint documentation](https://docs.docker.com/engine/api/v1.41/#tag/Image). | #### Returns `Promise`<`unknown`\> #### Inherited from DockerDesktopClientV0.listImages ___ ## Navigation Methods ### navigateToContainers ▸ **navigateToContainers**(): `void` Navigate to the container's window in Docker Desktop. ```typescript window.ddClient.navigateToContainers(); ``` > [!WARNING] > > It will be removed in a future version. Use [viewContainers](NavigationIntents.md#viewcontainers) instead. #### Returns `void` #### Inherited from DockerDesktopClientV0.navigateToContainers ___ ### navigateToContainer ▸ **navigateToContainer**(`id`): `Promise`<`any`\> Navigate to the container window in Docker Desktop. ```typescript await window.ddClient.navigateToContainer(id); ``` > [!WARNING] > > It will be removed in a future version. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `id` | `string` | The full container id, e.g. `46b57e400d801762e9e115734bf902a2450d89669d85881058a46136520aca28`. You can use the `--no-trunc` flag as part of the `docker ps` command to display the full container id. | #### Returns `Promise`<`any`\> A promise that fails if the container doesn't exist. #### Inherited from DockerDesktopClientV0.navigateToContainer ___ ### navigateToContainerLogs ▸ **navigateToContainerLogs**(`id`): `Promise`<`any`\> Navigate to the container logs window in Docker Desktop. ```typescript await window.ddClient.navigateToContainerLogs(id); ``` > [!WARNING] > > It will be removed in a future version. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `id` | `string` | The full container id, e.g. `46b57e400d801762e9e115734bf902a2450d89669d85881058a46136520aca28`. You can use the `--no-trunc` flag as part of the `docker ps` command to display the full container id. | #### Returns `Promise`<`any`\> A promise that fails if the container doesn't exist. #### Inherited from DockerDesktopClientV0.navigateToContainerLogs ___ ### navigateToContainerInspect ▸ **navigateToContainerInspect**(`id`): `Promise`<`any`\> Navigate to the container inspect window in Docker Desktop. ```typescript await window.ddClient.navigateToContainerInspect(id); ``` > [!WARNING] > > It will be removed in a future version. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `id` | `string` | The full container id, e.g. `46b57e400d801762e9e115734bf902a2450d89669d85881058a46136520aca28`. You can use the `--no-trunc` flag as part of the `docker ps` command to display the full container id. | #### Returns `Promise`<`any`\> A promise that fails if the container doesn't exist. #### Inherited from DockerDesktopClientV0.navigateToContainerInspect ___ ### navigateToContainerStats ▸ **navigateToContainerStats**(`id`): `Promise`<`any`\> Navigate to the container stats to see the CPU, memory, disk read/write and network I/O usage. ```typescript await window.ddClient.navigateToContainerStats(id); ``` > [!WARNING] > > It will be removed in a future version. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `id` | `string` | The full container id, e.g. `46b57e400d801762e9e115734bf902a2450d89669d85881058a46136520aca28`. You can use the `--no-trunc` flag as part of the `docker ps` command to display the full container id. | #### Returns `Promise`<`any`\> A promise that fails if the container doesn't exist. #### Inherited from DockerDesktopClientV0.navigateToContainerStats ___ ### navigateToImages ▸ **navigateToImages**(): `void` Navigate to the images window in Docker Desktop. ```typescript await window.ddClient.navigateToImages(id); ``` > [!WARNING] > > It will be removed in a future version. Use [viewImages](NavigationIntents.md#viewimages) instead. #### Returns `void` #### Inherited from DockerDesktopClientV0.navigateToImages ___ ### navigateToImage ▸ **navigateToImage**(`id`, `tag`): `Promise`<`any`\> Navigate to a specific image referenced by `id` and `tag` in Docker Desktop. In this navigation route you can find the image layers, commands, created time and size. ```typescript await window.ddClient.navigateToImage(id, tag); ``` > [!WARNING] > > It will be removed in a future version. Use [viewImage](NavigationIntents.md#viewimage) instead. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `id` | `string` | The full image id (including sha), e.g. `sha256:34ab3ae068572f4e85c448b4035e6be5e19cc41f69606535cd4d768a63432673`. | | `tag` | `string` | The tag of the image, e.g. `latest`, `0.0.1`, etc. | #### Returns `Promise`<`any`\> A promise that fails if the container doesn't exist. #### Inherited from DockerDesktopClientV0.navigateToImage ___ ### navigateToVolumes ▸ **navigateToVolumes**(): `void` Navigate to the volumes window in Docker Desktop. ```typescript await window.ddClient.navigateToVolumes(); ``` > [!WARNING] > > It will be removed in a future version. Use [viewVolumes](NavigationIntents.md#viewvolumes) instead. #### Returns `void` #### Inherited from DockerDesktopClientV0.navigateToVolumes ___ ### navigateToVolume ▸ **navigateToVolume**(`volume`): `void` Navigate to a specific volume in Docker Desktop. ```typescript window.ddClient.navigateToVolume(volume); ``` > [!WARNING] > > It will be removed in a future version. Use [viewVolume](NavigationIntents.md#viewvolume) instead. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `volume` | `string` | The name of the volume, e.g. `my-volume`. | #### Returns `void` #### Inherited from DockerDesktopClientV0.navigateToVolume ___ ### navigateToDevEnvironments ▸ **navigateToDevEnvironments**(): `void` Navigate to the Dev Environments window in Docker Desktop. ```typescript window.ddClient.navigateToDevEnvironments(); ``` > [!WARNING] > > It will be removed in a future version. Use [viewDevEnvironments](NavigationIntents.md#viewdevenvironments) instead. #### Returns `void` #### Inherited from DockerDesktopClientV0.navigateToDevEnvironments ___ ## Other Methods ### execHostCmd ▸ **execHostCmd**(`cmd`): `Promise`<[`ExecResultV0`](ExecResultV0.md)\> You can run binaries defined in the host section in the extension metadata. ```typescript window.ddClient.execHostCmd(`cliShippedOnHost xxx`).then((cmdResult: any) => { console.log(cmdResult); }); ``` > [!WARNING] > > It will be removed in a future version. Use [exec](ExtensionCli.md#exec) instead. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `cmd` | `string` | The command to be executed. | #### Returns `Promise`<[`ExecResultV0`](ExecResultV0.md)\> #### Inherited from DockerDesktopClientV0.execHostCmd ___ ### spawnHostCmd ▸ **spawnHostCmd**(`cmd`, `args`, `callback`): `void` Invoke an extension binary on your host and get the output stream. ```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] > > It will be removed in a future version. Use [exec](ExtensionCli.md#exec) instead. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `cmd` | `string` | The command to be executed. | | `args` | `string`[] | The arguments of the command to execute. | | `callback` | (`data`: `any`, `error`: `any`) => `void` | The callback function where to listen from the command output data and errors. | #### Returns `void` #### Inherited from DockerDesktopClientV0.spawnHostCmd ___ ### execDockerCmd ▸ **execDockerCmd**(`cmd`, `...args`): `Promise`<[`ExecResultV0`](ExecResultV0.md)\> You can also directly execute the Docker binary. ```typescript const output = await window.ddClient.execDockerCmd("info"); ``` > [!WARNING] > > It will be removed in a future version. Use [exec](DockerCommand.md#exec) instead. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `cmd` | `string` | The command to execute. | | `...args` | `string`[] | The arguments of the command to execute. | #### Returns `Promise`<[`ExecResultV0`](ExecResultV0.md)\> The result will contain both the standard output and the standard error of the executed command: ```json { "stderr": "...", "stdout": "..." } ``` For convenience, the command result object also has methods to easily parse it depending on the output format: - `output.lines(): string[]` splits output lines. - `output.parseJsonObject(): any` parses a well-formed JSON output. - `output.parseJsonLines(): any[]` parses each output line as a JSON object. If the output of the command is too long, or you need to get the output as a stream you can use the * spawnDockerCmd function: ```typescript window.ddClient.spawnDockerCmd("logs", ["-f", "..."], (data, error) => { console.log(data.stdout); }); ``` #### Inherited from DockerDesktopClientV0.execDockerCmd ___ ### spawnDockerCmd ▸ **spawnDockerCmd**(`cmd`, `args`, `callback`): `void` > [!WARNING] > > It will be removed in a future version. Use [exec](DockerCommand.md#exec) instead. #### Parameters | Name | Type | | :------ | :------ | | `cmd` | `string` | | `args` | `string`[] | | `callback` | (`data`: `any`, `error`: `any`) => `void` | #### Returns `void` #### Inherited from DockerDesktopClientV0.spawnDockerCmd ___ ### openExternal ▸ **openExternal**(`url`): `void` Opens an external URL with the system default browser. ```typescript window.ddClient.openExternal("https://docker.com"); ``` > [!WARNING] > > It will be removed in a future version. Use [openExternal](Host.md#openexternal) instead. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `url` | `string` | The URL the browser opens (must have the protocol `http` or `https`). | #### Returns `void` #### Inherited from DockerDesktopClientV0.openExternal ___ ## Toast Methods ### toastSuccess ▸ **toastSuccess**(`msg`): `void` Display a toast message of type success. ```typescript window.ddClient.toastSuccess("message"); ``` >**Warning`** > > It will be removed in a future version. Use [success](Toast.md#success) instead. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `msg` | `string` | The message to display in the toast. | #### Returns `void` #### Inherited from DockerDesktopClientV0.toastSuccess ___ ### toastWarning ▸ **toastWarning**(`msg`): `void` Display a toast message of type warning. ```typescript window.ddClient.toastWarning("message"); ``` > [!WARNING] > > It will be removed in a future version. Use [warning](Toast.md#warning) instead. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `msg` | `string` | The message to display in the toast. | #### Returns `void` #### Inherited from DockerDesktopClientV0.toastWarning ___ ### toastError ▸ **toastError**(`msg`): `void` Display a toast message of type error. ```typescript window.ddClient.toastError("message"); ``` > [!WARNING] > > It will be removed in a future version. Use [error](Toast.md#error) instead. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `msg` | `string` | The message to display in the toast. | #### Returns `void` #### Inherited from DockerDesktopClientV0.toastError