Skip to content

docker/extensions-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker Extensions

This repository includes the Extensions CLI and samples to create Docker Extensions.

Prerequisites

To get started with Docker Extensions you will need the latest version of Docker Desktop. The Docker extension CLI is bundled by default with Docker Desktop version 4.10.0 and higher.

Tutorials

Extensions SDK documentation

Documentation about the Extensions SDK and creating your own extensions can be found here.

Contributions are welcome to update/improve documentation content (see extensions SDK under desktop/extensions-sdk folder)

Docker Extension Model

Desktop Extensions are packaged and distributed as Docker images. Development of extensions can be done locally without the need to push the extension to Docker Hub. This is described in Extension Distribution.

The extension image must have some specific content as described in Extension Metadata.

Developing Docker Extensions

The Extensions CLI is an extension development tool that can be used to manage Docker extensions.

This repository contains multiple extensions, each one is defined in an individual directories at the root of the repository. These are Docker developed samples that are not meant to be final products.

To try one of them, navigate to the directory of the extension then use the CLI to build and install the extension on Docker Desktop.

The Quickstart guide describes how to get started developing your custom Docker Extension. It also covers how to open the Chrome Dev Tools and show the extension containers.

The extension UI has access to an extension API to invoke backend operations from the UI, e.g. listing running containers, images, etc. Furthermore, you can communicate with your extension backend service or invoke a binary on the host or in the VM.

UI Guidelines

We are currently in the process of developing our design system but in the meantime, here are some UI guidelines. Docker Desktop's UI is written in React and Material UI, and we strongly recommend adopting this combination in your extensions as well. This brings the benefit of using our Material UI Theme to easily replicate Docker Desktop's look & feel, and we'll continue to release libraries and utilities targeting this combination.

You can read more about our design guidelines here.