style guide alignments (#16111)

* style guide alignments

* fix

* Update desktop/extensions-sdk/quickstart.md

Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>

* Update desktop/extensions-sdk/build/build-install.md

Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>

* Update desktop/extensions-sdk/build/test-debug.md

Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>

* Update desktop/extensions-sdk/build/test-debug.md

Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>

* Update desktop/extensions-sdk/build/test-debug.md

Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>

* Update desktop/extensions-sdk/quickstart.md

Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>

* Update desktop/extensions-sdk/quickstart.md

Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>

Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
This commit is contained in:
Allie Sadler 2022-11-07 15:56:38 +00:00 committed by GitHub
parent 2cb71f2573
commit 2a1fd8eb23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
58 changed files with 210 additions and 187 deletions

View File

@ -1,7 +1,7 @@
<!-- This text will be included in the Docker Desktop install topic for each Linux distribution -->
To start Docker Desktop for Linux, search **Docker Desktop** on the
**Applications** menu and open it. This launches the whale menu icon and opens
**Applications** menu and open it. This launches the Docker menu icon and opens
the Docker Dashboard, reporting the status of Docker Desktop.
Alternatively, open a terminal and run:
@ -49,7 +49,7 @@ Alternatively, open a terminal and run:
$ systemctl --user enable docker-desktop
```
To stop Docker Desktop, click on the whale menu tray icon to open the Docker menu and select **Quit Docker Desktop**.
To stop Docker Desktop, select the Docker menu icon to open the Docker menu and select **Quit Docker Desktop**.
Alternatively, open a terminal and run:

View File

@ -29,7 +29,7 @@ To disable this feature, clear the **Use containerd for pulling and storing imag
### Show server and storage driver version
```
```console
$ docker info
Client:
Context: default
@ -93,9 +93,8 @@ Server:
### Run a simple container
```
```console
$ docker run --rm hello-world
Unable to find image 'hello-world:latest' locally
7d246653d051: Download complete
432f982638b3: Download complete
@ -112,7 +111,7 @@ This message shows that your installation appears to be working correctly.
Run the container specifying port settings:
```
```console
$ docker run -p 8080:80 -d nginx
Unable to find image 'nginx:latest' locally
@ -131,7 +130,7 @@ fd61d71c75fe: Download complete
Confirm the NGINX container is running:
```
```console
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
93b4d60dfd08 nginx "/docker-entrypoint.…" 3 seconds ago Up 3 seconds 0.0.0.0:8080->80/tcp stoic_mccarthy
@ -145,18 +144,15 @@ You can also check from the browser that NGINX is running:
Sample Dockerfile:
```
```dockerfile
FROM alpine
ENTRYPOINT ["echo", "hello friends"]
```
Build a multi-platform image:
```
```console
$ docker buildx build --platform linux/amd64,linux/arm64 -t <username>/hello-friends .
[+] Building 0.7s (7/7)
FINISHED
@ -184,13 +180,13 @@ FINISHED
```
Run multi-platform image:
```
```console
$ docker run <username>/hello-friends
```
Push a multi-platform image:
```
```console
$ docker push <username>/hello-friends
Using default tag: latest
f1edbf6b99d2: Pushed

View File

@ -1,6 +1,6 @@
---
description: Dev Environments
keywords: Dev Environments, share, collaborate, local
keywords: Dev Environments, share, Docker Desktop, Compose, launch
title: Launch a dev environment
redirect_from:
- /desktop/dev-environments/create-compose-dev-env/
@ -98,7 +98,7 @@ Docker then clones the repository with your specified branch or tag.
>Note
>
>Currently, Dev Environments is not able to detect the main language of the subdirectory. You need to define your own base image or services in a `compose-dev.yaml`file located in your subdirectory. For more information on how to configure, see the [React application with a Spring backend and a MySQL database sample](https://github.com/docker/awesome-compose/tree/master/react-java-mysql) or the [Go server with an Nginx proxy and a Postgres database sample](https://github.com/docker/awesome-compose/tree/master/nginx-golang-postgres).
>Currently, Dev Environments is not able to detect the main language of the subdirectory. You need to define your own base image or services in a `compose-dev.yaml`file located in your subdirectory. For more information on how to configure, see the [React application with a Spring backend and a MySQL database sample](https://github.com/docker/awesome-compose/tree/master/react-java-mysql){:target="_blank" rel="noopener" class="_"} or the [Go server with an Nginx proxy and a Postgres database sample](https://github.com/docker/awesome-compose/tree/master/nginx-golang-postgres){:target="_blank" rel="noopener" class="_"}.
1. From **Dev Environments** in Docker Dashboard, select **Create**. The **Create a Dev Environment** dialog displays.
2. Select **Get Started** and then copy your Git subfolder link into the **Enter the Git Repository** field with **Existing Git repo** as the source.

View File

@ -1,6 +1,6 @@
---
description: Set up a dev Environments
keywords: Dev Environments, share, collaborate, local, set up
keywords: Dev Environments, share, docker dev, Docker Desktop
title: Use the docker dev CLI plugin
---

View File

@ -1,6 +1,6 @@
---
description: Dev Environments
keywords: Dev Environments, share, collaborate, local
keywords: Dev Environments, share, local, Compose
title: Overview
---
> **Beta**
@ -26,7 +26,7 @@ Dev Environments is powered by [Docker Compose](/compose/). This allows Dev Envi
Every dev environment you want to run needs a `compose-dev.yaml` file which configures your application's services and lives in your project directory. You don't need to be an expert in Docker Compose or write a `compose-dev.yaml` file from scratch as Dev Environments creates a starter `compose-dev.yaml` files based on the main language in your project.
You can also use the many [sample dev environments](https://github.com/docker/awesome-compose) as a starting point for how to integrate different services. Alternatively, see [Set up a dev environment](set-up.md) for more information.
You can also use the many [sample dev environments](https://github.com/docker/awesome-compose){:target="_blank" rel="noopener" class="_"} as a starting point for how to integrate different services. Alternatively, see [Set up a dev environment](set-up.md) for more information.
## What's next?

View File

@ -1,11 +1,9 @@
---
description: Set up a dev Environments
keywords: Dev Environments, share, collaborate, local, set up
keywords: Dev Environments, share, set up, Compose, Docker Desktop
title: Set up a dev environment
---
## Set up your own dev environment
>**Changes to Dev Environments with Docker Desktop 4.13**
>
>Docker has simplified how you configure your dev environment project. All you need to get started is a `compose-dev.yaml` file. If you have an existing project with a `.docker/` folder this is automatically migrated the next time you launch.

View File

@ -1,6 +1,6 @@
---
description: Dev Environments
keywords: Dev Environments, share, collaborate, local, share
keywords: Dev Environments, share, Docker Desktop
title: Distribute your dev environment
---

View File

@ -13,7 +13,9 @@ Once you have set up your directory correctly, you can build your extension for
To build the extension, run:
`docker build -t <name-of-your-extension> .`
```console
$ docker build -t <name-of-your-extension> .
```
## Validate your extension
@ -23,23 +25,31 @@ The validation checks if the extensions `Dockerfile` specifies all the requir
To validate, run:
`docker extension validate <name-of-your-extension>`
```console
$ docker extension validate <name-of-your-extension>
```
If your extension is valid, the message below displays:
`The extension image "name-of-your-extension" is valid`.
```console
The extension image "name-of-your-extension" is valid
```
Before the image is built, it is also possible to validate only the metadata.json file:
`$ docker extension validate /path/to/metadata.json`
```console
$ docker extension validate /path/to/metadata.json
```
The JSON schema used to validate the `metadata.json` file against can be found under the [releases page](https://github.com/docker/extensions-sdk/releases/latest).
The JSON schema used to validate the `metadata.json` file against can be found under the [releases page](https://github.com/docker/extensions-sdk/releases/latest){:target="_blank" rel="noopener" class="_"}.
## Install the extension
To install the extension in Docker Desktop, run:
`docker extension install <name-of-your-extension>`
```console
$ docker extension install <name-of-your-extension>
```
> Note
>

View File

@ -8,7 +8,7 @@ redirect_from:
To start creating your extension, you first need a directory with files which range from the extensions source code to the required extension-specific files. This page provides information on how to set up a simple Docker Extension that runs CLI commands in the backend.
For extensions with a backend service running REST services over sockets or named pipes, see the `vm-ui extension` [sample](https://github.com/docker/extensions-sdk/tree/main/samples).
For extensions with a backend service running REST services over sockets or named pipes, see the `vm-ui extension` [sample](https://github.com/docker/extensions-sdk/tree/main/samples){:target="_blank" rel="noopener" class="_"}.
> Note
>
@ -20,7 +20,7 @@ For extensions with a backend service running REST services over sockets or name
## Extension folder structure
In the `minimal-backend` [sample folder](https://github.com/docker/extensions-sdk/tree/main/samples), you can find a ready-to-go example that represents a UI extension built on HTML that runs a backend service. We will go through this code example in this tutorial.
In the `minimal-backend` [sample folder](https://github.com/docker/extensions-sdk/tree/main/samples){:target="_blank" rel="noopener" class="_"}, you can find a ready-to-go example that represents a UI extension built on HTML that runs a backend service. We will go through this code example in this tutorial.
Although you can start from an empty directory, it is highly recommended that you start from the template below and change it accordingly to suit your needs.

View File

@ -18,7 +18,7 @@ To start creating your extension, you first need a directory with files which ra
## Extension folder structure
In the `minimal-frontend` [sample folder](https://github.com/docker/extensions-sdk/tree/main/samples), you can find a ready-to-go example that represents a UI Extension built on HTML. We will go through this code example in this tutorial.
In the `minimal-frontend` [sample folder](https://github.com/docker/extensions-sdk/tree/main/samples){:target="_blank" rel="noopener" class="_"}, you can find a ready-to-go example that represents a UI Extension built on HTML. We will go through this code example in this tutorial.
Although you can start from an empty directory, it is highly recommended that you start from the template below and change it accordingly to suit your needs.

View File

@ -18,7 +18,7 @@ To start creating your extension, you first need a directory with files which ra
## Extension folder structure
In the `minimal-docker-cli` [sample folder](https://github.com/docker/extensions-sdk/tree/main/samples), you can find a ready-to-go example that represents a UI Extension invoking Docker commands. We will go through this code example in this tutorial.
In the `minimal-docker-cli` [sample folder](https://github.com/docker/extensions-sdk/tree/main/samples){:target="_blank" rel="noopener" class="_"}, you can find a ready-to-go example that represents a UI Extension invoking Docker commands. We will go through this code example in this tutorial.
Although you can start from an empty directory, it is highly recommended that you start from the template below and change it accordingly to suit your needs.

View File

@ -18,7 +18,7 @@ To start creating your extension, you first need a directory with files which ra
## Extension folder structure
In the `react-extension` [sample folder](https://github.com/docker/extensions-sdk/tree/main/samples), you can find a ready-to-go example that represents a UI Extension built on ReactJS. We will go through this code example in this tutorial.
In the `react-extension` [sample folder](https://github.com/docker/extensions-sdk/tree/main/samples){:target="_blank" rel="noopener" class="_"}, you can find a ready-to-go example that represents a UI Extension built on ReactJS. We will go through this code example in this tutorial.
Although you can start from an empty directory, it is highly recommended that you start from the template below and change it accordingly to suit your needs.

View File

@ -19,13 +19,17 @@ The example below shows the [`Min FrontEnd Extension`](set-up/minimal-frontend-e
In order to open the Chrome DevTools for your extension when you click on the extension tab, run:
`$ docker extension dev debug <name-of-your-extensions>`
```console
$ docker extension dev debug <name-of-your-extensions>
```
Each subsequent click on the extension tab will also open Chrome Dev Tools. To stop this behaviour, run:
`$ docker extension dev reset <name-of-your-extensions>`
```console
$ docker extension dev reset <name-of-your-extensions>
```
After an extension is deployed, it is also possible to open Chrome DevTools from the UI extension part using a variation of the [Konami Code](https://en.wikipedia.org/wiki/Konami_Code). Click on the extension tab, and then hit the key sequence `up, up, down, down, left, right, left, right, p, d, t`.
After an extension is deployed, it is also possible to open Chrome DevTools from the UI extension part using a variation of the [Konami Code](https://en.wikipedia.org/wiki/Konami_Code){:target="_blank" rel="noopener" class="_"}. Click on the extension tab, and then hit the key sequence `up, up, down, down, left, right, left, right, p, d, t`.
### Hot reloading whilst developing the UI
@ -33,22 +37,26 @@ During UI development, its helpful to use hot reloading to test your changes
Assuming your app runs on the default port, start your UI app and then run:
```
cd ui
npm start
```console
$ cd ui
$ npm start
```
This starts a development server that listens on port 3000.
You can now tell Docker Desktop to use this as the frontend source. In another terminal run:
`$ docker extension dev ui-source <name-of-your-extensions> http://localhost:3000`
```console
$ docker extension dev ui-source <name-of-your-extensions> http://localhost:3000
```
Close and reopen the Docker Desktop dashboard and go to your extension. All the changes to the frontend code are immediately visible.
Once finished, you can reset the extension configuration to the original settings. This will also reset opening Chrome dev tools if you used `docker extension dev debug <name-of-your-extensions>`:
`$ docker extension dev reset <name-of-your-extensions>`
```console
$ docker extension dev reset <name-of-your-extensions>
```
## Show the extension containers
@ -62,7 +70,9 @@ If your extension is composed of one or more services running as containers in t
To update the extension, you must first [rebuild and reinstall](build-install.md) your extension. You can then use the update command.
`docker extension update <name-of-your-extensions>`
```console
$ docker extension update <name-of-your-extensions>
```
## Clean up

View File

@ -14,9 +14,9 @@ Here is a simple checklist to go through when building your extension:
## Build a consistent experience with Docker Desktop.
Use the [Docker Material UI Theme](https://www.npmjs.com/package/@docker/docker-mui-theme) and the [Docker Extensions Styleguide](https://www.figma.com/file/U7pLWfEf6IQKUHLhdateBI/Docker-Design-Guidelines?node-id=1%3A28771) to ensure that your extension feels like it is part of Docker Desktop to create a seamless experience for users.
Use the [Docker Material UI Theme](https://www.npmjs.com/package/@docker/docker-mui-theme){:target="_blank" rel="noopener" class="_"} and the [Docker Extensions Styleguide](https://www.figma.com/file/U7pLWfEf6IQKUHLhdateBI/Docker-Design-Guidelines?node-id=1%3A28771){:target="_blank" rel="noopener" class="_"} to ensure that your extension feels like it is part of Docker Desktop to create a seamless experience for users.
- Ensure the extension has both a light and dark theme. Using the components and styles as per the Docker style guide ensures that your extension meets the [level AA accessibility standard.](https://www.w3.org/WAI/WCAG2AA-Conformance)
- Ensure the extension has both a light and dark theme. Using the components and styles as per the Docker style guide ensures that your extension meets the [level AA accessibility standard.](https://www.w3.org/WAI/WCAG2AA-Conformance){:target="_blank" rel="noopener" class="_"}.
![light and dark mode](images/light_dark_mode.png)

View File

@ -4,7 +4,7 @@ description: Guidelines for using MUI to maximise compatibility with Docker Desk
keywords: Docker, extensions, mui, theme, theming, material-ui, material
---
This article assumes you're following our recommended practice by using our [Material UI theme](https://www.npmjs.com/package/@docker/docker-mui-theme). Following the steps below maximises compatibility with Docker Desktop and minimises the work you need to do as an extension author. They should be considered supplementary to the non-MUI-specific guidelines found in the [UI Styling overview](overview.md).
This article assumes you're following our recommended practice by using our [Material UI theme](https://www.npmjs.com/package/@docker/docker-mui-theme){:target="_blank" rel="noopener" class="_"}. Following the steps below maximises compatibility with Docker Desktop and minimises the work you need to do as an extension author. They should be considered supplementary to the non-MUI-specific guidelines found in the [UI Styling overview](overview.md).
## Assume the theme can change at any time
@ -35,11 +35,11 @@ Sometimes youll need a piece of UI that doesnt exist in our design system.
If you still decide to build it yourself after contacting us, try and define the new UI in a reuseable fashion. If you define your custom UI in just one place, itll make it easier to change in the future if our core theme changes. You could use:
- A new `variant` of an existing component - see [MUI docs](https://mui.com/material-ui/customization/theme-components/#creating-new-component-variants)
- A new `variant` of an existing component - see [MUI docs](https://mui.com/material-ui/customization/theme-components/#creating-new-component-variants){:target="_blank" rel="noopener" class="_"}
- A MUI mixin (a freeform bundle of reuseable styling rules defined inside a theme)
- A new [reuseable component](https://mui.com/material-ui/customization/how-to-customize/#2-reusable-component)
- A new [reuseable component](https://mui.com/material-ui/customization/how-to-customize/#2-reusable-component){:target="_blank" rel="noopener" class="_"}
Some of the above options require you to extend our MUI theme. See the MUI documentation on [theme composition](https://mui.com/material-ui/customization/theming/#nesting-the-theme).
Some of the above options require you to extend our MUI theme. See the MUI documentation on [theme composition](https://mui.com/material-ui/customization/theming/#nesting-the-theme){:target="_blank" rel="noopener" class="_"}.
## What's next?

View File

@ -4,7 +4,7 @@ description: Docker extension design
keywords: Docker, extensions, design
---
Our Design System is a constantly evolving set of specifications that aim to ensure visual consistency across Docker products, and meet [level AA accessibility standards](https://www.w3.org/WAI/WCAG2AA-Conformance). We've opened parts of it to extension authors, documenting basic styles (color, typography) and components. See: [Docker Extensions Styleguide](https://www.figma.com/file/U7pLWfEf6IQKUHLhdateBI/Docker-Design-Guidelines?node-id=1%3A28771).
Our Design System is a constantly evolving set of specifications that aim to ensure visual consistency across Docker products, and meet [level AA accessibility standards](https://www.w3.org/WAI/WCAG2AA-Conformance){:target="_blank" rel="noopener" class="_"}. We've opened parts of it to extension authors, documenting basic styles (color, typography) and components. See: [Docker Extensions Styleguide](https://www.figma.com/file/U7pLWfEf6IQKUHLhdateBI/Docker-Design-Guidelines?node-id=1%3A28771){:target="_blank" rel="noopener" class="_"}.
We require extensions to match the wider Docker Desktop UI to a certain degree, and reserve the right to make this stricter in the future.
@ -14,9 +14,9 @@ To get started on your UI, follow the steps below.
### Recommended: React+MUI, using our theme
Docker Desktop's UI is written in React and [MUI](https://mui.com/) (using Material UI to specific). This is the only officially supported framework for building extensions, and the one that our `init` command automatically configures for you. Using it brings significant benefits to authors:
Docker Desktop's UI is written in React and [MUI](https://mui.com/){:target="_blank" rel="noopener" class="_"} (using Material UI to specific). This is the only officially supported framework for building extensions, and the one that our `init` command automatically configures for you. Using it brings significant benefits to authors:
- You can use our [Material UI theme](https://www.npmjs.com/package/@docker/docker-mui-theme) to automatically replicate Docker Desktop's look & feel.
- You can use our [Material UI theme](https://www.npmjs.com/package/@docker/docker-mui-theme){:target="_blank" rel="noopener" class="_"} to automatically replicate Docker Desktop's look & feel.
- In future, we'll release utilities and components specifically targeting this combination (e.g. custom MUI components, or React hooks for interacting with Docker).
Read our [MUI best practices](mui-best-practices.md) guide to learn future-proof ways to use MUI with Docker Desktop.
@ -37,7 +37,7 @@ See our [MUI best practices](mui-best-practices.md) article.
### Only use colors from our palette
With minor exceptions, displaying your logo for example, you should only use colors from our palette. These can be found in our [style guide document](https://www.figma.com/file/U7pLWfEf6IQKUHLhdateBI/Docker-Design-Guidelines?node-id=1%3A28771), and will also soon be available in our MUI theme and via CSS variables.
With minor exceptions, displaying your logo for example, you should only use colors from our palette. These can be found in our [style guide document](https://www.figma.com/file/U7pLWfEf6IQKUHLhdateBI/Docker-Design-Guidelines?node-id=1%3A28771){:target="_blank" rel="noopener" class="_"}, and will also soon be available in our MUI theme and via CSS variables.
### Use counterpart colors in light/dark mode

View File

@ -6,7 +6,7 @@ keywords: Docker, Extensions, sdk, Kubernetes
Currently, the Extensions SDK does not provide any API methods to directly interact with the Docker Desktop managed Kubernetes cluster or any other created using other tools such as KinD. However, this page provides a way for you to use other SDK APIs to interact indirectly with a Kubernetes cluster from your Docker extension.
To request an API that directly interacts with Docker Desktop-managed Kubernetes, you can upvote [this issue](https://github.com/docker/extensions-sdk/issues/181) in our GitHub repository.
To request an API that directly interacts with Docker Desktop-managed Kubernetes, you can upvote [this issue](https://github.com/docker/extensions-sdk/issues/181){:target="_blank" rel="noopener" class="_"} in our GitHub repository.
## Prerequisites
@ -24,7 +24,7 @@ To find out how to ship the `kubectl` command line tool for multiple platforms a
## Examples
The code snippets below have been put together in the [Kubernetes Sample Extension](https://github.com/docker/extensions-sdk/tree/main/samples/kubernetes-sample-extension). It shows how to interact with a Kubernetes cluster by shipping the `kubectl` commandline tool.
The code snippets below have been put together in the [Kubernetes Sample Extension](https://github.com/docker/extensions-sdk/tree/main/samples/kubernetes-sample-extension){:target="_blank" rel="noopener" class="_"}. It shows how to interact with a Kubernetes cluster by shipping the `kubectl` commandline tool.
### Check the Kubernetes API server is reachable

View File

@ -24,7 +24,7 @@ To publish the extension you need to upload the Docker image to [DockerHub](http
>
> See [distribution and new releases](DISTRIBUTION.md#distribution-and-new-releases) for more information.
>
> See [semver.org](https://semver.org/) to learn more about semantic versioning.
> See [semver.org](https://semver.org/){:target="_blank" rel="noopener" class="_"} to learn more about semantic versioning.
2. Push the image to Docker Hub:

View File

@ -46,11 +46,11 @@ This build section provides sample folders with ready-to-go examples that walk y
>Note
>
>Whilst you're building your extension, make sure you follow our [design](design/design-guidelines.md) and [UI styling](design/overview.md) guidelines to ensure visual consistency and [level AA accessibility standards](https://www.w3.org/WAI/WCAG2AA-Conformance).
>Whilst you're building your extension, make sure you follow our [design](design/design-guidelines.md) and [UI styling](design/overview.md) guidelines to ensure visual consistency and [level AA accessibility standards](https://www.w3.org/WAI/WCAG2AA-Conformance){:target="_blank" rel="noopener" class="_"}.
If your extension requires additional services running in the Docker Desktop VM, see the [VM UI](https://github.com/docker/extensions-sdk/tree/main/samples/vm-service) example.
If your extension requires additional services running in the Docker Desktop VM, see the [VM UI](https://github.com/docker/extensions-sdk/tree/main/samples/vm-service){:target="_blank" rel="noopener" class="_"} example.
For further inspiration, see the other examples in the [samples folder](https://github.com/docker/extensions-sdk/tree/main/samples)
For further inspiration, see the other examples in the [samples folder](https://github.com/docker/extensions-sdk/tree/main/samples){:target="_blank" rel="noopener" class="_"}.
### Part two: Publish and distribute your extension
@ -58,7 +58,7 @@ Docker Desktop displays published extensions in the Extensions Marketplace. The
All extensions submitted to the Extension Marketplace are reviewed and approved by our team before listing. This review process ensures a level of trust, security, and quality for developers using Extensions and allows for Extension developers to get feedback on what will improve their Extensions experience.
If you want your extension to be published in the Marketplace, you can submit your extension [here](https://www.docker.com/products/extensions/submissions/). Well review your submission and provide feedback if changes are needed before we can validate and publish it to make it available to all Docker Desktop users.
If you want your extension to be published in the Marketplace, you can submit your extension [here](https://www.docker.com/products/extensions/submissions/){:target="_blank" rel="noopener" class="_"}. Well review your submission and provide feedback if changes are needed before we can validate and publish it to make it available to all Docker Desktop users.
## Whats next?
If you want to get up and running quickly with a Docker Extension, see the [Quickstart guide](quickstart.md).

View File

@ -15,14 +15,16 @@ Follow the guide below to build a basic Docker Extension quickly. The Quickstart
## Prerequisites
- [Docker Desktop](../release-notes.md)
- [NodeJS](https://nodejs.org/)
- [Go](https://go.dev/dl/)
- [NodeJS](https://nodejs.org/){:target="_blank" rel="noopener" class="_"}
- [Go](https://go.dev/dl/){:target="_blank" rel="noopener" class="_"}
## Step one: Set up your directory
To set up your directory, use the `init` subcommand and provide a name for your extension.
`docker extension init my-extension`
```console
$ docker extension init my-extension
```
Youll be asked a series of questions about your extension, such as its name, a description, and the name of your Hub repository. This helps the CLI generate a set of boilerplate files for you to get started. The boilerplate files are stored in the directory `my-extension`.
@ -37,19 +39,24 @@ For more information and guidelines on building the UI, see the [Design and UI s
To build your extension, run:
`docker build -t <name-of-your-extension> .`
```console
$ docker build -t <name-of-your-extension> .
```
`docker build` builds your extension and also generates an image which is named after your chosen hub repository. For instance, if you typed `john/my-extension` as the answer to the following question:
`? Hub repository (eg. namespace/repository on hub): john/my-extension`
```console
? Hub repository (eg. namespace/repository on hub): john/my-extension`
```
The `docker build` generates an image with name `john/my-extension`.
## Step three: Install and preview the extension
To install the extension in Docker Desktop, run:
`docker extension install <name-of-your-extension>`
```console
$ docker extension install <name-of-your-extension>
```
To preview the extension in Docker Desktop, close and open Docker Dashboard once the installation is complete.
@ -63,7 +70,9 @@ If you want to make your extension available to all Docker Desktop users, you ca
To remove the extension, run:
`docker extension rm <name-of-your-extension>`
```console
$ docker extension rm <name-of-your-extension>
```
## What's next

View File

@ -21,7 +21,7 @@ Anyone can use Docker Extensions and there is no limit to the number of extensio
## What extensions are available?
There is a mix of partner and community-built extensions and Docker-built extensions.
You can explore the list of available extensions in [Docker Hub](https://hub.docker.com/search?q=&type=extension) or in the Extensions Marketplace within Docker Desktop.
You can explore the list of available extensions in [Docker Hub](https://hub.docker.com/search?q=&type=extension){:target="_blank" rel="noopener" class="_"} or in the Extensions Marketplace within Docker Desktop.
To find out more about Docker Extensions, we recommend the video walkthrough from DockerCon 2022:

View File

@ -1,6 +1,6 @@
---
description: Extensions
keywords: Docker Extensions, Docker Desktop, Linux, Mac, Windows, feedback
keywords: Docker Extensions, Docker Desktop, Linux, Mac, Windows, Marketplace
title: Marketplace extensions
---

View File

@ -1,6 +1,6 @@
---
description: Extensions
keywords: Docker Extensions, Docker Desktop, Linux, Mac, Windows, feedback
keywords: Docker Extensions, Docker Desktop, Linux, Mac, Windows,
title: Non-Marketplace extensions
---

View File

@ -37,7 +37,7 @@ Read the [Blog](https://www.docker.com/blog/updating-product-subscriptions/){: t
## Do I need to pay to create or share Docker Extensions?
No, the [Docker Extension SDK](https://www.npmjs.com/package/@docker/extension-api-client) is licensed under the Apache 2.0 License and is free to use. Anyone can create new Docker Extensions and share them without constraints.
No, the [Docker Extension SDK](https://www.npmjs.com/package/@docker/extension-api-client){:target="_blank" rel="noopener" class="_"} is licensed under the Apache 2.0 License and is free to use. Anyone can create new Docker Extensions and share them without constraints.
## Do I need to use a specific license when I create a Docker Extension?

View File

@ -227,7 +227,7 @@ Bash has [built-in support for
completion](https://www.debian-administration.org/article/316/An_introduction_to_bash_completion_part_1){:target="_blank"
class="_"} To activate completion for Docker commands, these files need to be
copied or symlinked to your `bash_completion.d/` directory. For example, if you
installed bash via [Homebrew](https://brew.sh):
installed bash via [Homebrew](https://brew.sh){:target="_blank" rel="noopener" class="_"}:
```bash
etc=/Applications/Docker.app/Contents/Resources/etc

View File

@ -109,15 +109,15 @@ containers, or select **Switch to Linux containers** to use Linux containers
For more information on Windows containers, refer to the following documentation:
- Microsoft documentation on [Windows containers](https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/index).
- Microsoft documentation on [Windows containers](https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/index){:target="_blank" rel="noopener" class="_"}.
- [Build and Run Your First Windows Server Container (Blog Post)](https://blog.docker.com/2016/09/build-your-first-docker-windows-server-container/)
- [Build and Run Your First Windows Server Container (Blog Post)](https://blog.docker.com/2016/09/build-your-first-docker-windows-server-container/){:target="_blank" rel="noopener" class="_"}
gives a quick tour of how to build and run native Docker Windows containers on Windows 10 and Windows Server 2016 evaluation releases.
- [Getting Started with Windows Containers (Lab)](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md)
shows you how to use the [MusicStore](https://github.com/aspnet/MusicStore/blob/dev/README.md)
- [Getting Started with Windows Containers (Lab)](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md){:target="_blank" rel="noopener" class="_"}
shows you how to use the [MusicStore](https://github.com/aspnet/MusicStore/blob/dev/README.md){:target="_blank" rel="noopener" class="_"}
application with Windows containers. The MusicStore is a standard .NET application and,
[forked here to use containers](https://github.com/friism/MusicStore), is a good example of a multi-container application.
[forked here to use containers](https://github.com/friism/MusicStore){:target="_blank" rel="noopener" class="_"}, is a good example of a multi-container application.
- To understand how to connect to Windows containers from the local host, see
[I want to connect to a container from Windows](../networking.md#i-want-to-connect-to-a-container-from-the-host)

View File

@ -1,7 +1,7 @@
---
description: Docker Dashboard
keywords: Docker Dashboard, manage, containers, gui, dashboard, images, user manual
title: Sign in and get started
keywords: Docker Dashboard, manage, containers, gui, dashboard, images, user manual, quick start, guide, sign in
title: Quick Start Guide and sign in
redirect_from:
- /desktop/linux/
- /desktop/linux/index/

View File

@ -1,7 +1,7 @@
---
title: FAQs and known issues
description: FAQ for Enhanced Container Isolation
keywords: enhanced container isolation, security, faq, sysbox
keywords: enhanced container isolation, security, faq, sysbox, known issues, Docker Desktop
toc_max: 2
---

View File

@ -1,12 +1,12 @@
---
description: Instructions on how to set up enhanced container isolation
title: Key features and benefits
keywords: set up, enhanced container isolation, rootless, security
keywords: set up, enhanced container isolation, rootless, security, features, Docker Desktop
---
### Linux User Namespace on all Containers
With Enhanced Container Isolation, all user containers leverage the [Linux user-namespace](https://man7.org/linux/man-pages/man7/user_namespaces.7.html)
With Enhanced Container Isolation, all user containers leverage the [Linux user-namespace](https://man7.org/linux/man-pages/man7/user_namespaces.7.html){:target="_blank" rel="noopener" class="_"}
for extra isolation. This means that the root user in the container maps to an unprivileged
user in the Docker Desktop Linux VM.

View File

@ -9,7 +9,7 @@ keywords: set up, enhanced container isolation, rootless, security
>Enhance Container Isolation is available to Docker Business customers only.
Enhanced Container Isolation hardens container isolation using the [Sysbox
container runtime](https://github.com/nestybox/sysbox). Sysbox is a fork of the
container runtime](https://github.com/nestybox/sysbox){:target="_blank" rel="noopener" class="_"}. Sysbox is a fork of the
standard OCI runc runtime that was modified to enhance container isolation and
workloads. For more details see [Under the hood](#under-the-hood).

View File

@ -1,6 +1,6 @@
---
description: Registry Access Management
keywords: registry, access, managment
keywords: registry access managment, Hardened Desktop, Docker Desktop, images, Docker Hub
title: Registry Access Management
redirect_from:
- /docker-hub/registry-access-management/

View File

@ -1,6 +1,6 @@
---
description: Docker Desktop overview
keywords: Desktop, Docker, GUI, run, docker, local, machine, dashboard
keywords: Docker Desktop, Docker, features, GUI, linux, mac, windows
title: Docker Desktop
redirect_from:
- /desktop/opensource/
@ -22,7 +22,7 @@ that enables you to build and share containerized applications and microservices
It provides a simple interface that enables you to manage your containers, applications, and images directly from your machine without having to use the CLI to perform core actions.
<style>
.tab-content > .tab-pane {
.tab-content > .tab-pane {s
background-color: #fafafb;
border: 1px solid #ddd;
border-top: 0;

View File

@ -1,7 +1,7 @@
---
description: Instructions for installing Docker Desktop Arch package. Mostly meant for hackers who want to try out Docker Desktop on a variety of Arch-based distributions.
keywords: Arch Linux, install, uninstall, upgrade, update, linux, desktop, docker desktop, docker desktop for linux, dd4l
title: Install Docker Desktop on Arch-based distributions
title: Install on Arch-based distributions
redirect_from:
- /desktop/linux/install/archlinux/
---
@ -22,7 +22,6 @@ Additionally, for non-Gnome Desktop environments, `gnome-terminal` must be insta
$ sudo pacman -S gnome-terminal
```
## Install Docker Desktop
1. Install client binaries. Docker does not have an Arch package repository. Binaries not included in the package must be installed manually before installing Docker Desktop.
@ -38,7 +37,6 @@ Static binaries for the Docker client are available for Linux (as `docker`).
$ sudo pacman -U ./docker-desktop-<version>-<arch>.pkg.tar.zst
```
## Launch Docker Desktop
{% include desktop-linux-launch.md %}

View File

@ -1,7 +1,7 @@
---
description: Instructions for installing Docker Desktop on Debian
keywords: debian, install, uninstall, upgrade, update, linux, desktop, docker desktop, docker desktop for linux, dd4l
title: Install Docker Desktop on Debian
title: Install on Debian
toc_max: 4
redirect_from:
- /desktop/linux/install/debian/
@ -38,7 +38,7 @@ $ sudo apt purge docker-desktop
>
> If you have installed the Docker Desktop for Linux tech preview or beta version, you need to remove all files that were generated by those packages (eg. `~/.config/systemd/user/docker-desktop.service`, `~/.local/share/systemd/user/docker-desktop.service`).
For a Gnome Desktop environment, you must also install AppIndicator and KStatusNotifierItem [Gnome extensions](https://extensions.gnome.org/extension/615/appindicator-support/).
For a Gnome Desktop environment, you must also install AppIndicator and KStatusNotifierItem [Gnome extensions](https://extensions.gnome.org/extension/615/appindicator-support/){:target="_blank" rel="noopener" class="_"}.
For non-Gnome Desktop environments, `gnome-terminal` must be installed:

View File

@ -1,7 +1,7 @@
---
description: Instructions for installing Docker Desktop on Fedora
keywords: fedora, rpm, update install, uninstall, upgrade, update, linux, desktop, docker desktop, docker desktop for linux, dd4l
title: Install Docker Desktop on Fedora
title: Install on Fedora
toc_max: 4
redirect_from:
- /desktop/linux/install/fedora/
@ -17,7 +17,7 @@ To install Docker Desktop successfully, you must:
- Meet the [system requirements](linux-install.md#system-requirements).
- Have a 64-bit version of either Fedora 35 or Fedora 36.
Additionally, for a Gnome Desktop environment you must install AppIndicator and KStatusNotifierItem [Gnome extensions](https://extensions.gnome.org/extension/615/appindicator-support/).
Additionally, for a Gnome Desktop environment you must install AppIndicator and KStatusNotifierItem [Gnome extensions](https://extensions.gnome.org/extension/615/appindicator-support/){:target="_blank" rel="noopener" class="_"}.
For non-Gnome Desktop environments, `gnome-terminal` must be installed:

View File

@ -1,7 +1,7 @@
---
description: How to install Docker Desktop on Linux
keywords: linux, desktop, docker desktop, docker desktop for linux, dd4l, install, system requirements
title: Install Docker Desktop on Linux
title: Install on Linux
redirect_from:
- /desktop/linux/install/
---
@ -31,7 +31,7 @@ To install Docker Desktop successfully, your Linux host must meet the following
- **QEMU must be version 5.2 or newer**. We recommend upgrading to the latest version.
- systemd init system.
- Gnome, KDE, or MATE Desktop environment.
- For many Linux distros, the Gnome environment does not support tray icons. To add support for tray icons, you need to install a Gnome extension. For example, [AppIndicator](https://extensions.gnome.org/extension/615/appindicator-support/).
- For many Linux distros, the Gnome environment does not support tray icons. To add support for tray icons, you need to install a Gnome extension. For example, [AppIndicator](https://extensions.gnome.org/extension/615/appindicator-support/){:target="_blank" rel="noopener" class="_"}.
- At least 4 GB of RAM.
- Enable configuring ID mapping in user namespaces, see [File sharing](../faqs/linuxfaqs.md#how-do-i-enable-file-sharing).
@ -67,7 +67,7 @@ Docker supports Docker Desktop on the current LTS release of the aforementioned
### KVM virtualization support
Docker Desktop runs a VM that requires [KVM support](https://www.linux-kvm.org).
Docker Desktop runs a VM that requires [KVM support](https://www.linux-kvm.org){:target="_blank" rel="noopener" class="_"}.
The `kvm` module should load automatically if the host has virtualization support. To load the module manually, run:
@ -143,7 +143,7 @@ Log out and log back in so that your group membership is re-evaluated.
> If you do not agree to the terms, the Docker Desktop application will close and you can no longer run Docker Desktop on your machine. You can choose to accept the terms at a later date by opening Docker Desktop.
{: .important}
For more information, see [Docker Desktop Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement). We recommend that you also read the [FAQs](https://www.docker.com/pricing/faq){: target="_blank" rel="noopener" class="_" id="dkr_docs_desktop_install_btl"}.
For more information, see [Docker Desktop Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement){:target="_blank" rel="noopener" class="_"}. We recommend that you also read the [FAQs](https://www.docker.com/pricing/faq){: target="_blank" rel="noopener" class="_" id="dkr_docs_desktop_install_btl"}.
## Where to go next

View File

@ -1,7 +1,7 @@
---
description: How to install Docker Desktop on Mac
keywords: mac, install, download, run, docker, local
title: Install Docker Desktop on Mac
keywords: mac, install, download, Docker Desktop, intel, apple silicon,
title: Install on Mac
redirect_from:
- /desktop/mac/install/
- /docker-for-mac/install/
@ -23,7 +23,7 @@ This page contains information about system requirements, download URLs, and ins
[Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-mac-amd64){: .button .primary-btn }
[Mac with Apple silicon](https://desktop.docker.com/mac/main/arm64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-mac-arm64){: .button .primary-btn }
*For checksums, see [Release notes](../release-notes.md)*
*For checksums, see [Release notes](../release-notes.md).*
## System requirements
@ -85,7 +85,7 @@ Your Mac must meet the following requirements to install Docker Desktop successf
> If you do not agree to the terms, the Docker Desktop application will close and you can no longer run Docker Desktop on your machine. You can choose to accept the terms at a later date by opening Docker Desktop.
{: .important}
For more information, see [Docker Desktop Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement). We recommend that you also read the [FAQs](https://www.docker.com/pricing/faq){: target="_blank" rel="noopener" class="_" id="dkr_docs_desktop_install_btl"}.
For more information, see [Docker Desktop Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement){: target="_blank" rel="noopener" class="_" }. We recommend that you also read the [FAQs](https://www.docker.com/pricing/faq){: target="_blank" rel="noopener" class="_"}.
### Install from the command line

View File

@ -1,7 +1,7 @@
---
description: Instructions for installing Docker Desktop on Ubuntu
keywords: ubuntu, install, uninstall, upgrade, update, linux, desktop, docker desktop, docker desktop for linux, dd4l
title: Install Docker Desktop on Ubuntu
title: Install on Ubuntu
toc_max: 4
redirect_from:
- /desktop/linux/install/ubuntu/

View File

@ -1,7 +1,7 @@
---
description: How to install Docker Desktop for Windows
keywords: windows, install, download, run, docker, local
title: Install Docker Desktop on Windows
keywords: windows, install, download, run, docker, local, Docker Desktop
title: Install on Windows
redirect_from:
- /desktop/windows/install/
- /docker-ee-for-windows/install/
@ -102,7 +102,7 @@ Looking for information on using Windows containers?
provides a tutorial on how to set up and run Windows containers on Windows 10, Windows Server 2016 and Windows Server 2019. It shows you how to use a MusicStore application
with Windows containers.
- Docker Container Platform for Windows [articles and blog
posts](https://www.docker.com/microsoft/) on the Docker website.
posts](https://www.docker.com/microsoft/){:target="_blank" rel="noopener" class="_"} on the Docker website.
> **Note**
>
@ -116,7 +116,7 @@ Looking for information on using Windows containers?
1. Double-click **Docker Desktop Installer.exe** to run the installer.
If you haven't already downloaded the installer (`Docker Desktop Installer.exe`), you can get it from
[**Docker Hub**](https://hub.docker.com/editions/community/docker-ce-desktop-windows/).
[**Docker Hub**](https://hub.docker.com/editions/community/docker-ce-desktop-windows/){:target="_blank" rel="noopener" class="_"}.
It typically downloads to your `Downloads` folder, or you can run it from
the recent downloads bar at the bottom of your web browser.
@ -135,13 +135,13 @@ Looking for information on using Windows containers?
After downloading **Docker Desktop Installer.exe**, run the following command in a terminal to install Docker Desktop:
```
"Docker Desktop Installer.exe" install
```console
$ "Docker Desktop Installer.exe" install
```
If youre using PowerShell you should run it as:
```
```powershell
Start-Process 'Docker Desktop Installer.exe' -Wait install
```
@ -166,8 +166,8 @@ The `install` command accepts the following flags:
If your admin account is different to your user account, you must add the user to the **docker-users** group:
```
net localgroup docker-users <user> /add
```console
$ net localgroup docker-users <user> /add
```
## Start Docker Desktop
@ -189,7 +189,7 @@ Docker Desktop does not start automatically after installation. To start Docker
> If you do not agree to the terms, the Docker Desktop application will close and you can no longer run Docker Desktop on your machine. You can choose to accept the terms at a later date by opening Docker Desktop.
{: .important}
For more information, see [Docker Desktop Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement/). We recommend that you also read the [FAQs](https://www.docker.com/pricing/faq){: target="\_blank" rel="noopener" class="*" id="dkr_docs_desktop_install_btl"}.
For more information, see [Docker Desktop Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement/){:target="_blank" rel="noopener" class="_"}. We recommend that you also read the [FAQs](https://www.docker.com/pricing/faq){: target="\_blank" rel="noopener" class="*" id="dkr_docs_desktop_install_btl"}.
## Where to go next

View File

@ -1,6 +1,6 @@
---
description: Deploying to Kubernetes on Docker Desktop
keywords: deploy, kubernetes, kubectl, orchestration
keywords: deploy, kubernetes, kubectl, orchestration, Docker Desktop
title: Deploy on Kubernetes
redirect_from:
- /docker-for-windows/kubernetes/

View File

@ -1,6 +1,6 @@
---
description: Permission requirements for Docker Desktop for Mac
keywords: Docker Desktop, mac, security, install
keywords: Docker Desktop, mac, security, install, permissions
title: Understand permission requirements for Mac
redirect_from:
- /docker-for-mac/privileged-helper/
@ -13,11 +13,11 @@ It also provides clarity on running containers as `root` as opposed to having `r
## Permission requirements
In the default set up flow, Docker Desktop for Mac does not require root privileges for installation but does require `root` access to be granted on the first run. The first time that Docker Desktop is launched the user receives an admin prompt to grant permissions for a privileged helper service to be installed. For subsequent runs, no `root` privileges are required.
In the default set up flow, Docker Desktop for Mac doesn't require root privileges for installation but does require `root` access to be granted on the first run. The first time that Docker Desktop is launched the user receives an admin prompt to grant permissions for a privileged helper service to be installed. For subsequent runs, no `root` privileges are required.
The reason for this is that Docker Desktop needs to perform a limited set of privileged operations using the privileged helper process `com.docker.vmnetd`. This approach allows, following the principle of least privilege, `root` access to be used only for the operations for which it is absolutely necessary, while still being able to use Docker Desktop as an unprivileged user.
In version 4.11 and above of Docker Desktop for Mac you can avoid running the privileged helper service in the background by using the `--user` flag on the [install command](../install/mac-install.md#install-from-the-command-line). This will result in `com.docker.vmnetd` being used for set up during installation and then disabled at runtime. In this case, the user will not be prompted to grant root privileges on the first run of Docker Desktop. Specifically, the `--user` flag:
In version 4.11 and later of Docker Desktop for Mac you can avoid running the privileged helper service in the background by using the `--user` flag on the [install command](../install/mac-install.md#install-from-the-command-line). This results in `com.docker.vmnetd` being used for set up during installation and then disabled at runtime. In this case, the user is not prompted to grant root privileges on the first run of Docker Desktop. Specifically, the `--user` flag:
- Uninstalls the previous `com.docker.vmnetd` if present
- Sets up symlinks for the user
- Ensures that `localhost` and `kubernetes.docker.internal` are present in `/etc/hosts`
@ -39,6 +39,6 @@ The privileged helper is started by `launchd` and runs in the background unless
## Containers running as root within the Linux VM
The Docker daemon and containers run in a lightweight Linux VM managed by Docker. This means that although containers run by default as `root`, this does not grant `root` access to the Mac host machine. The Linux VM serves as a security boundary and limits what resources can be accessed from the host. Any directories from the host bind mounted into Docker containers still retain their original permissions.
The Docker daemon and containers run in a lightweight Linux VM managed by Docker. This means that although containers run by default as `root`, this doesn't grant `root` access to the Mac host machine. The Linux VM serves as a security boundary and limits what resources can be accessed from the host. Any directories from the host bind mounted into Docker containers still retain their original permissions.

View File

@ -1,6 +1,6 @@
---
description: Networking on Docker Desktop
keywords: networking, docker desktop
keywords: networking, docker desktop, proxy, vpn, Linux, Mac, Windows
title: Explore networking features
redirect_from:
- /desktop/linux/networking/

View File

@ -1,7 +1,7 @@
---
description: Docker Desktop settings
keywords: settings, preferences, proxy, file sharing, resources, kubernetes, Docker Desktop, Linux
title: Change Docker Desktop settings on Linux
title: Change on Linux
---
This page provides information on how to configure and manage your Docker Desktop settings.
@ -132,7 +132,7 @@ Click **Apply & Restart** to save your settings and restart Docker Desktop.
{% include beta.md %}
From the **Beta features** tab, you can sign up to the [Developer Preview program](https://www.docker.com/community/get-involved/developer-preview/).
From the **Beta features** tab, you can sign up to the [Developer Preview program](https://www.docker.com/community/get-involved/developer-preview/){:target="_blank" rel="noopener" class="_"}.
On the **Beta features** tab, you also have the option to allow version 4.13 feature flags, which are product features Docker is currently experimenting with. This is switched on by default.

View File

@ -1,7 +1,7 @@
---
description: Docker Desktop settings
keywords: settings, preferences, proxy, file sharing, resources, kubernetes, Docker Desktop, Mac
title: Change Docker Desktop preferences on Mac
title: Change preferences on Mac
redirect_from:
- /docker-for-mac/mutagen-caching/
- /docker-for-mac/mutagen/

View File

@ -119,7 +119,7 @@ File share settings are:
> better if they are stored in the Linux VM, using a [data volume](../../storage/volumes.md)
> (named volume) or [data container](../../storage/volumes.md).
> * Docker Desktop sets permissions to read/write/execute for users, groups and
> others [0777 or a+rwx](https://chmodcommand.com/chmod-0777/).
> others [0777 or a+rwx](https://chmodcommand.com/chmod-0777/){:target="_blank" rel="noopener" class="_"}.
> This is not configurable. See [Permissions errors on data directories for shared volumes](../troubleshoot/topics.md).
> * Windows presents a case-insensitive view of the filesystem to applications while Linux is case-sensitive.
> On Linux, it is possible to create two separate files: `test` and `Test`,
@ -205,7 +205,7 @@ Click **Apply & Restart** to save your settings and restart Docker Desktop.
{% include beta.md %}
From the **Beta features** tab, you can sign up to the [Developer Preview program](https://www.docker.com/community/get-involved/developer-preview/).
From the **Beta features** tab, you can sign up to the [Developer Preview program](https://www.docker.com/community/get-involved/developer-preview/){:target="_blank" rel="noopener" class="_"}.
On the **Beta features** tab, you also have the option to allow version 4.13 feature flags, which are product features Docker is currently experimenting with. This is switched on by default.

View File

@ -1,6 +1,6 @@
---
description: Known issues for Mac
keywords: mac, troubleshooting, known issues
keywords: mac, troubleshooting, known issues, Docker Desktop
title: Known issues for Docker Desktop on Mac
---
<ul class="nav nav-tabs">
@ -16,7 +16,7 @@ title: Known issues for Docker Desktop on Mac
This is an interaction between `vmnet.framework` (as used by `virtualization.framework`) and the VPN clients.
* Some container disk I/O is much slower than expected. See [docker/for-mac#5389](https://github.com/docker/for-mac/issues/5389). Disk flushes are particularly slow due to the need to guarantee data is written to stable storage on the host. We have also observed specific performance problems when using the `virtualization.framework` on Intel chips on MacOS Monterey.
* Some container disk I/O is much slower than expected. See [docker/for-mac#5389](https://github.com/docker/for-mac/issues/5389){:target="_blank" rel="noopener" class="_"}. Disk flushes are particularly slow due to the need to guarantee data is written to stable storage on the host. We have also observed specific performance problems when using the `virtualization.framework` on Intel chips on MacOS Monterey.
This is an artifact of the new `virtualization.framework`.
@ -28,7 +28,7 @@ title: Known issues for Docker Desktop on Mac
* On Apple silicon in native `arm64` containers, older versions of `libssl` such as `debian:buster`, `ubuntu:20.04`, and `centos:8` will segfault when connected to some TLS servers, for example, `curl https://dl.yarnpkg.com`. The bug is fixed in newer versions of `libssl` in `debian:bullseye`, `ubuntu:21.04`, and `fedora:35`.
* The Mac Activity Monitor reports that Docker is using twice the amount of memory than it is actually using. This is due to a bug in MacOS. We have written [a detailed report](https://docs.google.com/document/d/17ZiQC1Tp9iH320K-uqVLyiJmk4DHJ3c4zgQetJiKYQM/edit?usp=sharing) on this.
* The Mac Activity Monitor reports that Docker is using twice the amount of memory than it is actually using. This is due to a bug in MacOS. We have written [a detailed report](https://docs.google.com/document/d/17ZiQC1Tp9iH320K-uqVLyiJmk4DHJ3c4zgQetJiKYQM/edit?usp=sharing){:target="_blank" rel="noopener" class="_"} on this.
* You might encounter errors when using `docker-compose up` with Docker Desktop
(`ValueError: Extra Data`). We've identified this is likely related to data
@ -44,17 +44,17 @@ title: Known issues for Docker Desktop on Mac
set of issues with Docker helper, registration, and versioning.
* Docker Desktop uses the `HyperKit` hypervisor
(https://github.com/docker/hyperkit) in macOS 10.10 Yosemite and higher. If
(https://github.com/docker/hyperkit){:target="_blank" rel="noopener" class="_"} in macOS 10.10 Yosemite and higher. If
you are developing with tools that have conflicts with `HyperKit`, such as
[Intel Hardware Accelerated Execution Manager
(HAXM)](https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager/),
(HAXM)](https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager/){:target="_blank" rel="noopener" class="_"},
the current workaround is not to run them at the same time. You can pause
`HyperKit` by quitting Docker Desktop temporarily while you work with HAXM.
This allows you to continue work with the other tools and prevent `HyperKit`
from interfering.
* If you are working with applications like [Apache
Maven](https://maven.apache.org/) that expect settings for `DOCKER_HOST` and
Maven](https://maven.apache.org/){:target="_blank" rel="noopener" class="_"} that expect settings for `DOCKER_HOST` and
`DOCKER_CERT_PATH` environment variables, specify these to connect to Docker
instances through Unix sockets. For example:
@ -74,7 +74,7 @@ title: Known issues for Docker Desktop on Mac
- Symfony
- Magento
- Zend Framework
- PHP applications that use [Composer](https://getcomposer.org) to install
- PHP applications that use [Composer](https://getcomposer.org){:target="_blank" rel="noopener" class="_"} to install
dependencies in a `vendor` folder
As a workaround for this behavior, you can put vendor or third-party library
@ -96,8 +96,8 @@ title: Known issues for Docker Desktop on Mac
However, attempts to run Intel-based containers on Apple silicon machines under emulation can crash as qemu sometimes fails to run the container. In addition, filesystem change notification APIs (`inotify`) do not work under qemu emulation. Even when the containers do run correctly under emulation, they will be slower and use more memory than the native equivalent.
In summary, running Intel-based containers on Arm-based machines should be regarded as "best effort" only. We recommend running arm64 containers on Apple silicon machines whenever possible, and encouraging container authors to produce arm64, or multi-arch, versions of their containers. We expect this issue to become less common over time, as more and more images are rebuilt [supporting multiple architectures](https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/).
- `ping` from inside a container to the Internet does not work as expected. To test the network, we recommend using `curl` or `wget`. See [docker/for-mac#5322](https://github.com/docker/for-mac/issues/5322#issuecomment-809392861).
In summary, running Intel-based containers on Arm-based machines should be regarded as "best effort" only. We recommend running arm64 containers on Apple silicon machines whenever possible, and encouraging container authors to produce arm64, or multi-arch, versions of their containers. We expect this issue to become less common over time, as more and more images are rebuilt [supporting multiple architectures](https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/){:target="_blank" rel="noopener" class="_"}.
- `ping` from inside a container to the Internet does not work as expected. To test the network, we recommend using `curl` or `wget`. See [docker/for-mac#5322](https://github.com/docker/for-mac/issues/5322#issuecomment-809392861){:target="_blank" rel="noopener" class="_"}.
- Users may occasionally experience data drop when a TCP stream is half-closed.
<hr>
</div>

View File

@ -1,6 +1,6 @@
---
description: Troubleshooting, logs, and known issues
keywords: linux, mac, windows, troubleshooting, logs, issues
keywords: Linux, Mac, Windows, troubleshooting, logs, issues, Docker Desktop
title: Overview
redirect_from:
- /desktop/linux/troubleshoot/
@ -14,7 +14,7 @@ redirect_from:
---
{% include upgrade-cta.html
body="Did you know that Docker Desktop offers support for developers on a paid Docker subscription (Pro, Team, or Business)? Upgrade now to benefit from Docker Support. Click [here](../../support/index.md) to learn more."
body="Docker Desktop offers support for developers on a paid Docker subscription (Pro, Team, or Business). Upgrade now to benefit from Docker Support. For more information, see [Support](../../support/index.md)."
target-url="https://www.docker.com/pricing?utm_source=docker&utm_medium=webreferral&utm_campaign=docs_driven_upgrade_desktop_support"
%}
@ -183,9 +183,9 @@ $ <tool location> check
The tool runs a suite of checks and displays **PASS** or **FAIL** next to each check. If there are any failures, it highlights the most relevant at the end of the report.
You can then create and issue on GitHub:
- [For Linux](https://github.com/docker/desktop-linux/issues)
- [For Mac](https://github.com/docker/for-mac/issues)
- [For Windows](https://github.com/docker/for-win/issues)
- [For Linux](https://github.com/docker/desktop-linux/issues){:target="_blank" rel="noopener" class="_"}
- [For Mac](https://github.com/docker/for-mac/issues){:target="_blank" rel="noopener" class="_"}
- [For Windows](https://github.com/docker/for-win/issues){:target="_blank" rel="noopener" class="_"}
## Check the logs

View File

@ -1,6 +1,6 @@
---
description: Troubleshooting topics
keywords: linux, mac, windows, troubleshooting, topics
keywords: Linux, Mac, Windows, troubleshooting, topics, Docker Desktop
title: Troubleshoot topics
toc_max: 3
---
@ -43,7 +43,7 @@ Volume mounting requires shared drives for projects that live outside of the
Docker Desktop requires a processor (CPU) that supports virtualization and, more
specifically, the [Apple Hypervisor
framework](https://developer.apple.com/library/mac/documentation/DriversKernelHardware/Reference/Hypervisor/).
framework](https://developer.apple.com/library/mac/documentation/DriversKernelHardware/Reference/Hypervisor/){:target="_blank" rel="noopener" class="_"}.
Docker Desktop is only compatible with Mac systems that have a CPU that supports the Hypervisor framework. Most Macs built in 2010 and later support it,as described in the Apple Hypervisor Framework documentation about supported hardware:
*Generally, machines with an Intel VT-x feature set that includes Extended Page
@ -61,7 +61,7 @@ If your Mac supports the Hypervisor Framework, the command prints
If not, the command prints `kern.hv_support: 0`.
See also, [Hypervisor Framework
Reference](https://developer.apple.com/library/mac/documentation/DriversKernelHardware/Reference/Hypervisor/)
Reference](https://developer.apple.com/library/mac/documentation/DriversKernelHardware/Reference/Hypervisor/){:target="_blank" rel="noopener" class="_"}
in the Apple documentation, and Docker Desktop [Mac system requirements](../install/mac-install.md#system-requirements).
## Topics for Windows
@ -71,7 +71,7 @@ in the Apple documentation, and Docker Desktop [Mac system requirements](../inst
#### Permissions errors on data directories for shared volumes
When sharing files from Windows, Docker Desktop sets permissions on [shared volumes](../settings/windows.md#file-sharing)
to a default value of [0777](https://chmodcommand.com/chmod-0777/)
to a default value of [0777](https://chmodcommand.com/chmod-0777/){:target="_blank" rel="noopener" class="_"}
(`read`, `write`, `execute` permissions for `user` and for `group`).
The default permissions on shared volumes are not configurable. If you are
@ -114,7 +114,7 @@ are used, `docker run` fails with syntax errors.
For an example of this issue and the resolution, see this issue on GitHub:
[Docker RUN fails to execute shell
script](https://github.com/moby/moby/issues/24388).
script](https://github.com/moby/moby/issues/24388){:target="_blank" rel="noopener" class="_"}.
#### Path conversion on Windows
@ -232,9 +232,9 @@ Docker Desktop requires Hyper-V as well as the Hyper-V Module for Windows
Powershell to be installed and enabled. The Docker Desktop installer enables
it for you.
Docker Desktop also needs two CPU hardware features to use Hyper-V: Virtualization and Second Level Address Translation (SLAT), which is also called Rapid Virtualization Indexing (RVI). On some systems, Virtualization must be enabled in the BIOS. The steps required are vendor-specific, but typically the BIOS option is called `Virtualization Technology (VTx)` or something similar. Run the command `systeminfo` to check all required Hyper-V features. See [Pre-requisites for Hyper-V on Windows 10](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/hyper-v-requirements) for more details.
Docker Desktop also needs two CPU hardware features to use Hyper-V: Virtualization and Second Level Address Translation (SLAT), which is also called Rapid Virtualization Indexing (RVI). On some systems, Virtualization must be enabled in the BIOS. The steps required are vendor-specific, but typically the BIOS option is called `Virtualization Technology (VTx)` or something similar. Run the command `systeminfo` to check all required Hyper-V features. See [Pre-requisites for Hyper-V on Windows 10](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/hyper-v-requirements){:target="_blank" rel="noopener" class="_"} for more details.
To install Hyper-V manually, see [Install Hyper-V on Windows 10](https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/quick_start/walkthrough_install). A reboot is *required* after installation. If you install Hyper-V without rebooting, Docker Desktop does not work correctly.
To install Hyper-V manually, see [Install Hyper-V on Windows 10](https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/quick_start/walkthrough_install){:target="_blank" rel="noopener" class="_"}. A reboot is *required* after installation. If you install Hyper-V without rebooting, Docker Desktop does not work correctly.
From the start menu, type **Turn Windows features on or off** and press enter.
In the subsequent screen, verify that Hyper-V is enabled.
@ -248,7 +248,7 @@ Performance tab on the Task Manager:
If you manually uninstall Hyper-V, WSL 2 or disable virtualization,
Docker Desktop cannot start. See [Unable to run Docker for Windows on
Windows 10 Enterprise](https://github.com/docker/for-win/issues/74).
Windows 10 Enterprise](https://github.com/docker/for-win/issues/74){:target="_blank" rel="noopener" class="_"}.
#### Hypervisor enabled at Windows startup
@ -268,8 +268,8 @@ You can also refer to the [Microsoft TechNet article](https://social.technet.mic
Docker Desktop is not supported on Windows Server. If you have questions about how to run Windows containers on Windows 10, see
[Switch between Windows and Linux containers](../faqs/windowsfaqs.md#how-do-i-switch-between-windows-and-linux-containers).
A full tutorial is available in [docker/labs](https://github.com/docker/labs) on
[Getting Started with Windows Containers](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md).
A full tutorial is available in [docker/labs](https://github.com/docker/labs){:target="_blank" rel="noopener" class="_"} on
[Getting Started with Windows Containers](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md){:target="_blank" rel="noopener" class="_"}.
You can install a native Windows binary which allows you to develop and run
Windows containers without Docker Desktop. However, if you install Docker this way, you cannot develop or run Linux containers. If you try to run a Linux container on the native Docker daemon, an error occurs:

View File

@ -1,6 +1,6 @@
---
description: Common workarounds
keywords: linux, mac, windows, troubleshooting, workarounds
keywords: linux, mac, windows, troubleshooting, workarounds, Docker Desktop
title: Workarounds for common problems
---

View File

@ -1,6 +1,6 @@
---
description: How to uninstall Docker Desktop
keywords: windows, install, download, run, docker, local
keywords: Windows, unintall, Mac, Linux, Docker Desktop
title: Uninstall Docker Desktop
---

View File

@ -18,12 +18,12 @@ From the **Containers** view you can perform the following actions on one or mor
- Delete
When you hover over individual containers, you can also:
- Click **Open in Visual Studio Code** to open the application in VS Code.
- Select **Open in Visual Studio Code** to open the application in VS Code.
- Open the port exposed by the container in a browser.
### Integrated terminal
You also have the option to open an integrated terminal, on a running container, directly within Docker Desktop. This allows you to quickly execute commands within your container so you can understand its current state or debug when something goes wrong.
You also have the option to open an integrated terminal, on a running container, directly within Docker Desktop. This allows you to quickly run commands within your container so you can understand its current state or debug when something goes wrong.
Using the integrated terminal is the same as running `docker exec -it <container-id> /bin/sh`, or `docker exec -it <container-id> cmd.exe` if you are using Windows containers, in your external terminal. It also:

View File

@ -33,12 +33,12 @@ You can sort images by:
## Run an image as a container
From the **Images view**, hover over an image and click **Run**.
From the **Images view**, hover over an image and select **Run**.
When prompted you can either:
- Click the **Optional settings** drop-down to specify a name, port, volumes, environment variables and click **Run**
- Click **Run** without specifying any optional settings.
- Select the **Optional settings** drop-down to specify a name, port, volumes, environment variables and select **Run**
- Select **Run** without specifying any optional settings.
## Inspect an image
@ -53,7 +53,7 @@ To inspect an image, hover over an image, select the **More options** button and
## Pull the latest image from Docker Hub
Select the image from the list, click the **More options** button and click **Pull**.
Select the image from the list, select the **More options** button and select **Pull**.
> **Note**
>
@ -61,7 +61,7 @@ Select the image from the list, click the **More options** button and click **Pu
## Push an image to Docker Hub
Select the image from the list, click the **More options** button and click **Push to Hub**.
Select the image from the list, select the **More options** button and select **Push to Hub**.
> **Note**
>
@ -77,7 +77,7 @@ You can remove individual images or use the **Clean up** option to delete unused
An unused image is an image which is not used by any running or stopped containers. An image becomes dangling when you build a new version of the image with the same tag.
To remove individual images, select the image from the list, click the **More options** button and click **Remove**
To remove individual images, select the image from the list, select the **More options** button and select **Remove**
To remove an unused or a dangling image:
@ -98,11 +98,11 @@ The **Pull** option allows you to pull the latest version of the image from Dock
To interact with remote repositories:
1. Click the **Remote repositories** tab.
1. select the **Remote repositories** tab.
2. Select an organization from the drop-down list. This displays a list of repositories in your organization.
3. Hover over an image from the list and then select **Pull** to pull the latest image from the remote repository.
To view a detailed information about the image in Docker Hub, select the image and then click **View in Hub**.
To view a detailed information about the image in Docker Hub, select the image and then select **View in Hub**.
The **View in Hub** option opens the Docker Hub page and displays detailed information about the image, such as the OS architecture, size of the image, the date when the image was pushed, and a list of the image layers.

View File

@ -1,6 +1,6 @@
---
description: Docker Dashboard
keywords: Docker Dashboard, manage, containers, gui, dashboard, images, user manual
keywords: Docker Dashboard, manage, containers, gui, dashboard, images, user manual, whale menu
title: Overview
redirect_from:
- /desktop/dashboard/
@ -21,15 +21,17 @@ In addition, the Docker Dashboard allows you to:
- Easily navigate to the **Preferences** (**Settings** in Windows) menu to configure Docker Desktop preferences. Select the **Preferences** or **Settings** icon in the Dashboard header.
- Access the **Troubleshoot** menu to debug and perform restart operations. Select the **Troubleshoot** icon in the Dashboard header.
## The Whale menu
## The Docker menu
Docker Desktop also provides an easy-access tray icon that appears in the taskbar and is reffered to as the Whale menu ![whale menu](../../assets/images/whale-x.svg){: .inline}.
Docker Desktop also provides an easy-access tray icon that appears in the taskbar and is referred to as the Docker menu ![whale menu](../../assets/images/whale-x.svg){: .inline}.
To display the Whale menu, right-click on the ![whale menu](../../assets/images/whale-x.svg){: .inline} icon. It displays the following options:
To display the Docker menu, right-click on the ![whale menu](../../assets/images/whale-x.svg){: .inline} icon. It displays the following options:
- **Dashboard**. This takes you to the Docker Dashboard.
- **Sign in/Create Dock Id**
- **Settings**. Takes you to the Settings, or Preferences is you use a macOS.
- **Check for updates**
- **Troubleshoot**
- **Switch to Windows containers**
- **About Docker Desktop**. Contains information on the versions you are running, and links to the Subscription Service Agreement for example.
- **Documentation**

View File

@ -1,6 +1,6 @@
---
description: Pause Docker Dashboard
keywords: Docker Dashboard, manage, containers, gui, dashboard, images, user manual
keywords: Docker Dashboard, manage, containers, gui, dashboard, pause, user manual
title: Pause Docker Desktop
---

View File

@ -1,6 +1,6 @@
---
description: Docker Dashboard
keywords: Docker Dashboard, manage, containers, gui, dashboard, images, user manual
keywords: Docker Dashboard, manage, containers, gui, dashboard, volumes, user manual
title: Explore Volumes
---
@ -27,7 +27,7 @@ To explore the details of a specific volume, select a volume from the list. This
The **In Use** tab displays the name of the container using the volume, the image name, the port number used by the container, and the target. A target is a path inside a container that gives access to the files in the volume.
The **Data** tab displays the files and folders in the volume and the file size. To save a file or a folder, hover over the file or folder and click on the more options menu. Select **Save As** and then specify a location to download the file.
The **Data** tab displays the files and folders in the volume and the file size. To save a file or a folder, hover over the file or folder and select on the more options menu. Select **Save As** and then specify a location to download the file.
To delete a file or a folder from the volume, select **Remove** from the **More options** menu.
@ -35,4 +35,4 @@ To delete a file or a folder from the volume, select **Remove** from the **More
Removing a volume deletes the volume and all its data.
To remove a volume, hover over the volume and then click the **Delete** icon. Alternatively, select the volume from the list and then click the **Delete** button.
To remove a volume, hover over the volume and then select the **Delete** icon. Alternatively, select the volume from the list and then select the **Delete** button.

View File

@ -26,15 +26,15 @@ You must enable nested virtualization before you install Docker Desktop on a vir
### Enable nested virtualization on VMware ESXi
Nested virtualization of other hypervisors like Hyper-V inside a vSphere VM [is not a supported scenario](https://kb.vmware.com/s/article/2009916). However, running Hyper-V VM in a VMware ESXi VM is technically possible and, depending on the version, ESXi includes hardware-assisted virtualization as a supported feature. For internal testing, we used a VM that had 1 CPU with 4 cores and 12GB of memory.
Nested virtualization of other hypervisors like Hyper-V inside a vSphere VM [is not a supported scenario](https://kb.vmware.com/s/article/2009916){:target="_blank" rel="noopener" class="_"}. However, running Hyper-V VM in a VMware ESXi VM is technically possible and, depending on the version, ESXi includes hardware-assisted virtualization as a supported feature. For internal testing, we used a VM that had 1 CPU with 4 cores and 12GB of memory.
For steps on how to expose hardware-assisted virtualization to the guest OS, [see VMware's documentation](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-2A98801C-68E8-47AF-99ED-00C63E4857F6.html).
For steps on how to expose hardware-assisted virtualization to the guest OS, [see VMware's documentation](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-2A98801C-68E8-47AF-99ED-00C63E4857F6.html){:target="_blank" rel="noopener" class="_"}.
You may also need to [configure some network settings](https://www.vembu.com/blog/nested-hyper-v-vms-on-a-vmware-esxi-server).
You may also need to [configure some network settings](https://www.vembu.com/blog/nested-hyper-v-vms-on-a-vmware-esxi-server){:target="_blank" rel="noopener" class="_"}.
### Enable nested virtualization on Microsoft Hyper-V
Nested virtualization is supported by Microsoft for running Hyper-V inside an Azure VM.
For Azure virtual machines, [check that the VM size chosen supports nested virtualization](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes). Microsoft provides [a helpful list on Azure VM sizes](https://docs.microsoft.com/en-us/azure/virtual-machines/acu) and highlights the sizes that currently support nested virtualization. For internal testing, we used D4s_v5 machines. We recommend this specification or above for optimal performance of Docker Desktop.
For Azure virtual machines, [check that the VM size chosen supports nested virtualization](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes){:target="_blank" rel="noopener" class="_"}. Microsoft provides [a helpful list on Azure VM sizes](https://docs.microsoft.com/en-us/azure/virtual-machines/acu){:target="_blank" rel="noopener" class="_"} and highlights the sizes that currently support nested virtualization. For internal testing, we used D4s_v5 machines. We recommend this specification or above for optimal performance of Docker Desktop.

View File

@ -5,9 +5,9 @@ keywords: Docker, WebAssembly, wasm, containerd, engine
toc_max: 3
---
Wasm (short for WebAssembly) is a faster, lighter alternative to the Linux & Windows containers youre using in Docker today (with [some tradeoffs](https://www.docker.com/blog/docker-wasm-technical-preview/)).
Wasm (short for WebAssembly) is a faster, lighter alternative to the Linux & Windows containers youre using in Docker today (with [some tradeoffs](https://www.docker.com/blog/docker-wasm-technical-preview/){:target="_blank" rel="noopener" class="_"}).
This page provides information about the new ability to run Wasm applications alongside your Linux containers in Docker. To learn more about the launch and how the preview works, read [the launch blog post here](https://www.docker.com/blog/docker-wasm-technical-preview/).
This page provides information about the new ability to run Wasm applications alongside your Linux containers in Docker. To learn more about the launch and how the preview works, read [the launch blog post here](https://www.docker.com/blog/docker-wasm-technical-preview/){:target="_blank" rel="noopener" class="_"}.
> **Beta**
>
@ -40,7 +40,7 @@ Download the technical preview build of Docker Desktop:
### Running a Wasm application with `docker run`
```
```console
$ docker run -dp 8080:8080 \
--name=wasm-example \
--runtime=io.containerd.wasmedge.v1 \
@ -69,8 +69,8 @@ services:
Start the application using the normal Docker Compose commands:
```
docker compose up
```console
$ docker compose up
```
### Running a multi-service application with Wasm
@ -81,7 +81,7 @@ In the following example, the Wasm application leverages a MariaDB database runn
1. Clone the repository.
```
```console
$ git clone https://github.com/second-state/microservice-rust-mysql.git
Cloning into 'microservice-rust-mysql'...
remote: Enumerating objects: 75, done.
@ -94,7 +94,7 @@ In the following example, the Wasm application leverages a MariaDB database runn
2. Navigate into the cloned project and start the project using Docker Compose.
```
```console
$ cd microservice-rust-mysql
$ docker compose up
[+] Running 0/1
@ -107,7 +107,7 @@ In the following example, the Wasm application leverages a MariaDB database runn
In another terminal, we can see the Wasm image that was created.
```
```console
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
server latest 2c798ddecfa1 2 minutes ago 3MB
@ -115,7 +115,7 @@ In the following example, the Wasm application leverages a MariaDB database runn
Inspecting the image shows the image has a `wasi/wasm32` platform. A combination of Os and Architecture.
```
```console
$ docker image inspect server | grep -A 3 "Architecture"
"Architecture": "wasm32",
"Os": "wasi",
@ -134,7 +134,7 @@ In the following example, the Wasm application leverages a MariaDB database runn
2. In a separate stage in your `Dockerfile`, extract the module and set it as the `ENTRYPOINT`.
```
```dockerfile
FROM scratch
COPY --from=build /build/hello_world.wasm /hello_world.wasm
ENTRYPOINT [ "hello_world.wasm" ]
@ -142,7 +142,7 @@ In the following example, the Wasm application leverages a MariaDB database runn
3. Build and push the image specifying the `wasi/wasm32` architecture. Buildx makes this easy to do in a single command.
```
```console
$ docker buildx build --platform wasi/wasm32 -t username/hello-world .
...
=> exporting to image 0.0s

View File

@ -1,10 +1,10 @@
---
description: Docker Desktop WSL 2 backend
keywords: WSL, WSL 2 Tech Preview, Windows Subsystem for Linux, WSL 2 backend Docker
keywords: WSL, WSL 2, Windows Subsystem for Linux, WSL 2 backend Docker, Docker Desktop
redirect_from:
- /docker-for-windows/wsl/
- /docker-for-windows/wsl-tech-preview/
title: Docker Desktop WSL 2 backend
title: Docker Desktop WSL 2 backend on Windows
---
Windows Subsystem for Linux (WSL) 2 introduces a significant architectural change as it is a full Linux kernel built by Microsoft, allowing Linux distributions to run without having to manage Virtual Machines. With Docker Desktop running on WSL 2, users can leverage Linux workspaces and avoid having to maintain both Linux and Windows build scripts. In addition, WSL 2 provides improvements to file system sharing, boot time, and allows access to some cool new features for Docker Desktop users.
@ -97,9 +97,9 @@ Docker Desktop does not require any particular Linux distros to be installed. Th
## Develop with Docker and WSL 2
The following section describes how to start developing your applications using Docker and WSL 2. We recommend that you have your code in your default Linux distribution for the best development experience using Docker and WSL 2. After you have enabled WSL 2 on Docker Desktop, you can start working with your code inside the Linux distro and ideally with your IDE still in Windows. This workflow can be pretty straightforward if you are using [VSCode](https://code.visualstudio.com/download).
The following section describes how to start developing your applications using Docker and WSL 2. We recommend that you have your code in your default Linux distribution for the best development experience using Docker and WSL 2. After you have enabled WSL 2 on Docker Desktop, you can start working with your code inside the Linux distro and ideally with your IDE still in Windows. This workflow can be pretty straightforward if you are using [VSCode](https://code.visualstudio.com/download){:target="_blank" rel="noopener" class="_"}.
1. Open VSCode and install the [Remote - WSL](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl) extension. This extension allows you to work with a remote server in the Linux distro and your IDE client still on Windows.
1. Open VSCode and install the [Remote - WSL](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl){:target="_blank" rel="noopener" class="_"} extension. This extension allows you to work with a remote server in the Linux distro and your IDE client still on Windows.
2. Now, you can start working in VSCode remotely. To do this, open your terminal and type:
`wsl`