Extension image labels

Extensions use image labels to provide additional information such as title, description, screenshots, and more.

This information is then displayed as an overview of the extension, so users can choose to install it

An extension overveiw, generated from labels

You can define Image labels in the extension's Dockerfile.

Here is the list of labels you need to specify when building your extension:

LabelRequiredDescriptionExample
org.opencontainers.image.titleYesHuman-readable title of the image (string). This appears in the UI for Docker Desktop.my-extension
org.opencontainers.image.descriptionYesHuman-readable description of the software packaged in the image (string)This extension is cool.
org.opencontainers.image.vendorYesName of the distributing entity, organization, or individual.Acme, Inc.
com.docker.desktop.extension.api.versionYesVersion of the Docker Extension manager that the extension is compatible with. It must follow semantic versioningopen_in_new.A specific version like 0.1.0 or, a constraint expression: >= 0.1.0, >= 1.4.7, < 2.0 . For your first extension, you can use docker extension version to know the SDK API version and specify >= <SDK_API_VERSION>.
com.docker.desktop.extension.iconYesThe extension icon (format: .svg .png .jpg)https://docs.docker.com/assets/images/engine.svgopen_in_new
com.docker.extension.screenshotsYesA JSON array of image URLs and an alternative text displayed to users (in the order they appear in your metadata) in your extension's details page. Note: The recommended size for screenshots is 2400x1600 pixels.[{"alt":"alternative text for image 1", "url":"https://foo.bar/image1.png"}, {"alt":"alternative text for image2", "url":"https://foo.bar/image2.jpg"}]
com.docker.extension.detailed-descriptionYesAdditional information in plain text or HTML about the extension to display in the details dialog.My detailed description or <h1>My detailed description</h1>
com.docker.extension.publisher-urlYesThe publisher website URL to display in the details dialog.https://foo.bar
com.docker.extension.additional-urlsNoA JSON array of titles and additional URLs displayed to users (in the order they appear in your metadata) in your extension's details page. Docker recommends you display the following links if they apply: documentation, support, terms of service, and privacy policy links.[{"title":"Documentation","url":"https://foo.bar/docs"}, {"title":"Support","url":"https://foo.bar/support"}, {"title":"Terms of Service","url":"https://foo.bar/tos"}, {"title":"Privacy policy","url":"https://foo.bar/privacy-policy"}]
com.docker.extension.changelogYesChangelog in plain text or HTML containing the change for the current version only.Extension changelog or <p>Extension changelog<ul> <li>New feature A</li> <li>Bug fix on feature B</li></ul></p>
com.docker.extension.account-infoNoWhether the user needs to register to a SaaS platform to use some features of the extension.required in case it does, leave it empty otherwise.
com.docker.extension.categoriesNoThe list of Marketplace categories that your extension belongs to: ci-cd, container-orchestration, cloud-deployment, cloud-development, database, kubernetes, networking, security,testing-tools, utility-tools,volumes. If you don't specify this label, users won't be able to find your extension in the Extensions Marketplace when filtering by a category. Extensions published to the Marketplace before the 22nd of September 2022 have been auto-categorized by Docker.Specified as comma separated values in case of having multiple categories e.g: kubernetes,security or a single value e.g. kubernetes.

Missing required labels

If any of the previous required labels are missing in the Dockerfile, Docker Desktop considers the extension invalid and doesn't list it in the Marketplace.

HTML content styling

Docker Desktop applies CSS styles to the provided HTML content. You can make sure that it renders correctly within the marketplace. Docker recommends that you follow the Styling guidelines.

Preview the extension in the Marketplace

You can validate that the image labels render as you expect.

When you build and install your unpublished extension, you can preview the extension in the Marketplace Managed tab. You can see how the extension labels render in the list and in the details page of the extension.

Preview extensions already listed in Marketplace

When you install a local image of an extension already published in the Marketplace, for example with the tag latest, your local image is currently not detected as "unpublished".

You can re-tag your image in order to have a different image name that's not listed as a published extension. Use docker tag org/published-extension unpublished-extension and then docker extension install unpublished-extension.

List preview