Skip to content

docker/extensions-sdk

Repository files navigation

Desktop Extension Samples

Netlify Status

This repository includes Desktop Extension samples.

⚠️ This work is experimental and still in progress, features and APIs detailed are subject to change

Prerequisites

To get started with Docker Extensions you will need a specific Docker Desktop build that comes with extension capabilities and the Extensions CLI.

See prerequisites.

Tutorials

Docker Desktop 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, described here

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 overview 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.

Build the documentation

We use mkdocs-material to create a static site from a set of Markdown files under docs.

docker run --rm -it -p 8000:8000 --rm -v ${PWD}:/docs squidfunk/mkdocs-material

Visit http://0.0.0.0:8000/