You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/extensions/_index.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,13 +2,13 @@
2
2
description: Extensions
3
3
keywords: Docker Extensions, Docker Desktop, Linux, Mac, Windows
4
4
title: Overview of Docker Extensions
5
-
toc_min: 1
6
-
toc_max: 2
5
+
aliases:
6
+
- /desktop/extensions/
7
7
---
8
8
9
9
Docker Extensions let you use third-party tools within Docker Desktop to extend its functionality.
10
10
11
-
You can seamlessly connect your favorite development tools to your application development and deployment workflows. Augment Docker Desktop with debugging, testing, security, and networking functionalities, and create custom add-ons using the Extensions [SDK](../extensions-sdk/index.md).
11
+
You can seamlessly connect your favorite development tools to your application development and deployment workflows. Augment Docker Desktop with debugging, testing, security, and networking functionalities, and create custom add-ons using the Extensions [SDK](extensions-sdk/index.md).
12
12
13
13
Anyone can use Docker Extensions and there is no limit to the number of extensions you can install.
Copy file name to clipboardExpand all lines: content/extensions/extensions-sdk/architecture/_index.md
+10-8Lines changed: 10 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,8 @@
2
2
title: Extension architecture
3
3
description: Docker extension architecture
4
4
keywords: Docker, extensions, sdk, metadata
5
+
aliases:
6
+
- /desktop/extensions-sdk/architecture/
5
7
---
6
8
7
9
Extensions are applications that run inside the Docker Desktop. They're packaged as Docker images, distributed
@@ -13,19 +15,19 @@ Extensions can be composed of three (optional) components:
13
15
- A backend: One or many containerised services running in the Docker Desktop VM
14
16
- Executables: Shell scripts or binaries that Docker Desktop copies on the host when installing the extension
15
17
16
-

18
+

17
19
18
20
An extension doesn't necessarily need to have all these components, but at least one of them depending on the extension features.
19
21
To configure and run those components, Docker Desktop uses a `metadata.json` file. See the
20
-
[metadata](./metadata) section for more details.
22
+
[metadata](metadata) section for more details.
21
23
22
24
## The frontend
23
25
24
26
The frontend is basically a web application made from HTML, Javascript, and CSS. It can be built with a simple HTML
25
27
file, some vanilla Javascript or any frontend framework, such as React or Vue.js.
26
28
27
29
When Docker Desktop installs the extension, it extracts the UI folder from the extension image, as defined by the
28
-
`ui` section in the `metadata.json`. See the [ui metadata section](./metadata.md#ui-section) for more details.
30
+
`ui` section in the `metadata.json`. See the [ui metadata section](metadata.md#ui-section) for more details.
29
31
30
32
Every time users click on the **Extensions** tab, Docker Desktop initializes the extension's UI as if it was the first time. When they navigate away from the tab, both the UI itself and all the sub-processes started by it (if any) are terminated.
31
33
@@ -60,7 +62,7 @@ file
60
62
61
63
Usually, the backend is made of one container that runs within the Docker Desktop VM. Internally, Docker Desktop creates
62
64
a Docker Compose project, creates the container from the `image` option of the `vm` section of the `metadata.json`, and
63
-
attaches it to the Compose project. See the [ui metadata section](./metadata.md#vm-section) for more details.
65
+
attaches it to the Compose project. See the [ui metadata section](metadata.md#vm-section) for more details.
64
66
65
67
In some cases, a `compose.yml` file can be used instead of an `image`. This is useful when the backend container
66
68
needs more specific options, such as mounting volumes or requesting [capabilities](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)
@@ -79,7 +81,7 @@ or named pipe, depending on the operating system. If the backend was listening t
79
81
prevent collision with other applications running on the host or in a container already. Also, some users are
80
82
running Docker Desktop in constrained environments where they can't open ports on their machines.
81
83
82
-

84
+

83
85
84
86
Finally, the backend can be built with any technology, as long as it can run in a container and listen on a socket.
85
87
@@ -95,15 +97,15 @@ Shipping those executables with the extension ensure that the CLI tool is always
95
97
the users' machine.
96
98
97
99
When Docker Desktop installs the extension, it copies the executables on the host as defined by the `host` section in
98
-
the `metadata.json`. See the [ui metadata section](./metadata.md#host-section) for more details.
100
+
the `metadata.json`. See the [ui metadata section](metadata.md#host-section) for more details.
99
101
100
-

102
+

101
103
102
104
However, since they're executed on the users' machine, they have to be available to the platform they're running on.
103
105
For example, if you want to ship the `kubectl` executable, you need to provide a different version for Windows, Mac,
104
106
and Linux. Multi arch images will also need to include binaries built for the right arch (AMD / ARM)
105
107
106
108
107
-
See the [host metadata section](./metadata.md#host-section) for more details.
109
+
See the [host metadata section](metadata.md#host-section) for more details.
108
110
109
111
Learn how to [invoke host binaries](../guides/invoke-host-binaries.md).
0 commit comments