From 9f56d945a73adc8680dea3536fada22c061b2ea2 Mon Sep 17 00:00:00 2001 From: Sarah Sanders Date: Thu, 30 Jan 2025 07:54:26 -0800 Subject: [PATCH 1/7] chore: summary bar cleanup (#21887) ## Description - Updated "Contribute" guide to reference summary bars, added instructions for using them - Removed `introduced` partial, this is now replaced by the summary bar `requires` value - Updated all files using `introduced` partial to use summary bar, updated YAML file w/ feature name and info ## Related issues or tickets [ENGDOCS-2392](https://docker.atlassian.net/browse/ENGDOCS-2392) ## Reviews - [ ] Technical review - [ ] Editorial review [ENGDOCS-2392]: https://docker.atlassian.net/browse/ENGDOCS-2392?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --- content/contribute/components/call-outs.md | 47 ++++----- .../manuals/build/builders/drivers/_index.md | 2 +- content/manuals/build/building/variables.md | 20 ++-- content/manuals/build/exporters/_index.md | 2 +- .../how-tos/environment-variables/envvars.md | 4 +- content/manuals/compose/how-tos/file-watch.md | 2 +- content/manuals/compose/how-tos/lifecycle.md | 2 +- .../how-tos/multiple-compose-files/include.md | 2 +- .../manuals/desktop/features/desktop-cli.md | 2 +- .../manuals/desktop/features/networking.md | 4 +- .../msi-install-and-configure.md | 24 +++-- .../enterprise-deployment/use-jamf-pro.md | 2 + content/manuals/engine/cli/otel.md | 2 +- .../enhanced-container-isolation/config.md | 2 +- content/reference/compose-file/build.md | 10 +- content/reference/compose-file/develop.md | 4 +- content/reference/compose-file/include.md | 32 +++--- content/reference/compose-file/merge.md | 6 +- content/reference/compose-file/services.md | 36 +++---- data/summary.yaml | 98 ++++++++++++++++--- hugo.yaml | 11 --- i18n/en.yaml | 19 +--- layouts/shortcodes/introduced.html | 57 ----------- layouts/shortcodes/summary-bar.html | 2 +- 24 files changed, 186 insertions(+), 206 deletions(-) delete mode 100644 layouts/shortcodes/introduced.html diff --git a/content/contribute/components/call-outs.md b/content/contribute/components/call-outs.md index 24455b7837f9..709afcc4f159 100644 --- a/content/contribute/components/call-outs.md +++ b/content/contribute/components/call-outs.md @@ -6,18 +6,25 @@ toc_max: 3 We support these broad categories of callouts: -- Alerts (Note, Tip, Important, Warning, Caution) -- Version callouts -- Experimental, which use the `{{%/* experimental */%}}` shortcode -- Restricted, which use the `{{%/* restricted */%}}` shortcode +- Alerts: Note, Tip, Important, Warning, Caution -The experimental and restricted shortcodes take a title as an argument. The -title is optional, defaults to "Experimental" or "Restricted" respectively, and -is displayed in the callout. +We also support summary bars, which represent a feature's required subscription, version, or Adminstrator role. +To add a summary bar: + +Add the feature name to the `/data/summary.yaml` file. Use the following attributes: + +| Attribute | Description | Possible values | +|----------------|--------------------------------------------------------|---------------------------------------------------------| +| `subscription` | Notes the subscription required to use the feature | All, Personal, Pro, Team, Business | +| `availability` | Notes what product development stage the feature is in | Experimental, Beta, Early access, GA, Retired | +| `requires` | Notes what minimum version is required for the feature | No specific value, use a string to describe the version and link to relevant release notes | +| `for` | Notes if the feature is intended for IT Administrators | Administrators | + +Then, add the `summary-bar` shortcode on the page you want to add the summary bar to. Note, the feature name is case sensitive. The icons that appear in the summary bar are automatically rendered. ## Examples -{{< introduced buildx 0.16.0 >}} +{{< summary-bar feature_name="PKG installer" >}} > [!NOTE] > @@ -54,18 +61,10 @@ is displayed in the callout. For both of the following callouts, consult [the Docker release lifecycle](/release-lifecycle) for more information on when to use them. -{{% experimental title="Beta feature" %}} -The Builds view is currently in Beta. This feature may change or be removed from future releases. -{{% /experimental %}} - -{{% restricted %}} -Docker Scout is an [early access](/release-lifecycle/#early-access-ea) product. -{{% /restricted %}} - -## Formatting +## Formatting ```go -{{}} +> {{< summary-bar feature_name="PKG installer" >}} ``` ```html @@ -101,14 +100,4 @@ Docker Scout is an [early access](/release-lifecycle/#early-access-ea) product. > [!CAUTION] > > Here be dragons. -``` - -```go -{{%/* experimental title="Beta feature" */%}} -The Builds view is currently in Beta. This feature may change or be removed from future releases. -{{%/* /experimental */%}} - -{{%/* restricted */%}} -Docker Scout is an [early access](/release-lifecycle/#early-access-ea) product. -{{%/* /restricted */%}} -``` +``` \ No newline at end of file diff --git a/content/manuals/build/builders/drivers/_index.md b/content/manuals/build/builders/drivers/_index.md index a75e455de620..52204e5f4708 100644 --- a/content/manuals/build/builders/drivers/_index.md +++ b/content/manuals/build/builders/drivers/_index.md @@ -66,7 +66,7 @@ To build an image using a non-default driver and load it to the image store, ### Load by default -{{< introduced buildx 0.14.0 >}} +{{< summary-bar feature_name="Load by default" >}} You can configure the custom build drivers to behave in a similar way to the default `docker` driver, and load images to the local image store by default. diff --git a/content/manuals/build/building/variables.md b/content/manuals/build/building/variables.md index 039f20268d82..41cb5d556fd8 100644 --- a/content/manuals/build/building/variables.md +++ b/content/manuals/build/building/variables.md @@ -352,7 +352,7 @@ Setting `NO_COLOR` to anything turns off colorized output, as recommended by ### BUILDKIT_HOST -{{< introduced buildx 0.9.0 "../release-notes.md#090" >}} +{{< summary-bar feature_name="Buildkit host" >}} You use the `BUILDKIT_HOST` to specify the address of a BuildKit daemon to use as a remote builder. This is the same as specifying the address as a positional @@ -438,7 +438,7 @@ Example: ### BUILDX_BAKE_GIT_AUTH_HEADER -{{< introduced buildx 0.14.0 >}} +{{< summary-bar feature_name="Buildx bake Git auth token" >}} Sets the HTTP authentication scheme when using a remote Bake definition in a private Git repository. This is equivalent to the [`GIT_AUTH_HEADER` secret](./secrets#http-authentication-scheme), @@ -453,7 +453,7 @@ $ export BUILDX_BAKE_GIT_AUTH_HEADER=basic ### BUILDX_BAKE_GIT_AUTH_TOKEN -{{< introduced buildx 0.14.0 >}} +{{< summary-bar feature_name="Buildx bake Git auth token" >}} Sets the HTTP authentication token when using a remote Bake definition in a private Git repository. This is equivalent to the [`GIT_AUTH_TOKEN` secret](./secrets#git-authentication-for-remote-contexts), @@ -467,7 +467,7 @@ $ export BUILDX_BAKE_GIT_AUTH_TOKEN=$(cat git-token.txt) ### BUILDX_BAKE_GIT_SSH -{{< introduced buildx 0.14.0 >}} +{{< summary-bar feature_name="Buildx bake Git SSH" >}} Lets you specify a list of SSH agent socket filepaths to forward to Bake for authenticating to a Git server when using a remote Bake definition in a private repository. @@ -512,7 +512,7 @@ $ export BUILDX_CONFIG=/usr/local/etc ### BUILDX_CPU_PROFILE -{{< introduced buildx 0.18.0 >}} +{{< summary-bar feature_name="Buildx CPU profile" >}} If specified, Buildx generates a `pprof` CPU profile at the specified location. @@ -538,7 +538,7 @@ $ export BUILDX_EXPERIMENTAL=1 ### BUILDX_GIT_CHECK_DIRTY -{{< introduced buildx 0.10.4 "../release-notes.md#0104" >}} +{{< summary-bar feature_name="Buildx Git check dirty" >}} When set to true, checks for dirty state in source control information for [provenance attestations](/manuals/build/metadata/attestations/slsa-provenance.md). @@ -551,7 +551,7 @@ $ export BUILDX_GIT_CHECK_DIRTY=1 ### BUILDX_GIT_INFO -{{< introduced buildx 0.10.0 "../release-notes.md#0100" >}} +{{< summary-bar feature_name="Buildx Git info" >}} When set to false, removes source control information from [provenance attestations](/manuals/build/metadata/attestations/slsa-provenance.md). @@ -564,7 +564,7 @@ $ export BUILDX_GIT_INFO=0 ### BUILDX_GIT_LABELS -{{< introduced buildx 0.10.0 "../release-notes.md#0100" >}} +{{< summary-bar feature_name="Buildx Git labels" >}} Adds provenance labels, based on Git information, to images that you build. The labels are: @@ -593,7 +593,7 @@ If the repository is in a dirty state, the `revision` gets a `-dirty` suffix. ### BUILDX_MEM_PROFILE -{{< introduced buildx 0.18.0 >}} +{{< summary-bar feature_name="Buildx mem profile" >}} If specified, Buildx generates a `pprof` memory profile at the specified location. @@ -610,7 +610,7 @@ $ export BUILDX_MEM_PROFILE=buildx_mem.prof ### BUILDX_NO_DEFAULT_ATTESTATIONS -{{< introduced buildx 0.10.4 "../release-notes.md#0104" >}} +{{< summary-bar feature_name="Buildx no default" >}} By default, BuildKit v0.11 and later adds [provenance attestations](/manuals/build/metadata/attestations/slsa-provenance.md) to images you diff --git a/content/manuals/build/exporters/_index.md b/content/manuals/build/exporters/_index.md index 3aae8b944033..2921fb1ff31e 100644 --- a/content/manuals/build/exporters/_index.md +++ b/content/manuals/build/exporters/_index.md @@ -184,7 +184,7 @@ WARNING: No output specified with docker-container driver. ## Multiple exporters -{{< introduced buildx 0.13.0 >}} +{{< summary-bar feature_name="Build multiple exporters" >}} You can use multiple exporters for any given build by specifying the `--output` flag multiple times. This requires **both Buildx and BuildKit** version 0.13.0 diff --git a/content/manuals/compose/how-tos/environment-variables/envvars.md b/content/manuals/compose/how-tos/environment-variables/envvars.md index 54a2a5e446a0..8640fc044d3a 100644 --- a/content/manuals/compose/how-tos/environment-variables/envvars.md +++ b/content/manuals/compose/how-tos/environment-variables/envvars.md @@ -172,7 +172,7 @@ If `COMPOSE_ENV_FILES` is not set, and you don't provide `--env-file` in the CLI ### COMPOSE\_MENU -{{< introduced compose 2.26.0 "/manuals/compose/releases/release-notes.md#2260" >}} +{{< summary-bar feature_name="Compose menu" >}} When enabled, Compose displays a navigation menu where you can choose to open the Compose stack in Docker Desktop, switch on [`watch` mode](../file-watch.md), or use [Docker Debug](/reference/cli/docker/debug.md). @@ -183,7 +183,7 @@ When enabled, Compose displays a navigation menu where you can choose to open th ### COMPOSE\_EXPERIMENTAL -{{< introduced compose 2.26.0 "/manuals/compose/releases/release-notes.md#2260" >}} +{{< summary-bar feature_name="Compose experimental" >}} This is an opt-out variable. When turned off it deactivates the experimental features such as the navigation menu or [Synchronized file shares](/manuals/desktop/features/synchronized-file-sharing.md). diff --git a/content/manuals/compose/how-tos/file-watch.md b/content/manuals/compose/how-tos/file-watch.md index 9ddb8cedec18..9b22aa5ece9b 100644 --- a/content/manuals/compose/how-tos/file-watch.md +++ b/content/manuals/compose/how-tos/file-watch.md @@ -7,7 +7,7 @@ aliases: - /compose/file-watch/ --- -{{< introduced compose 2.22.0 "/manuals/compose/releases/release-notes.md#2220" >}} +{{< summary-bar feature_name="Compose file watch" >}} {{% include "compose/watch.md" %}} diff --git a/content/manuals/compose/how-tos/lifecycle.md b/content/manuals/compose/how-tos/lifecycle.md index d044f1bed13d..ef43083d520b 100644 --- a/content/manuals/compose/how-tos/lifecycle.md +++ b/content/manuals/compose/how-tos/lifecycle.md @@ -6,7 +6,7 @@ desription: How to use lifecycle hooks with Docker Compose keywords: cli, compose, lifecycle, hooks reference --- -{{< introduced compose 2.30.0 "../releases/release-notes.md#2300" >}} +{{< summary-bar feature_name="Compose lifecycle hooks" >}} ## Services lifecycle hooks diff --git a/content/manuals/compose/how-tos/multiple-compose-files/include.md b/content/manuals/compose/how-tos/multiple-compose-files/include.md index 7a16dc86dd01..a07f0b989139 100644 --- a/content/manuals/compose/how-tos/multiple-compose-files/include.md +++ b/content/manuals/compose/how-tos/multiple-compose-files/include.md @@ -6,7 +6,7 @@ aliases: - /compose/multiple-compose-files/include/ --- -{{< introduced compose 2.20.3 "/manuals/compose/releases/release-notes.md#2203" >}} +{{< summary-bar feature_name="Compose include" >}} {{% include "compose/include.md" %}} diff --git a/content/manuals/desktop/features/desktop-cli.md b/content/manuals/desktop/features/desktop-cli.md index b2d8524f27bb..0eec7eb55a3a 100644 --- a/content/manuals/desktop/features/desktop-cli.md +++ b/content/manuals/desktop/features/desktop-cli.md @@ -13,7 +13,7 @@ params: {{< summary-bar feature_name="Docker Desktop CLI" >}} -The Docker Desktop CLI lets you perform key operations such as starting, stopping, restarting, and checking the status of Docker Desktop directly from the command line. It is available with Docker Desktop version 4.37 and later. +The Docker Desktop CLI lets you perform key operations such as starting, stopping, restarting, and checking the status of Docker Desktop directly from the command line. The Docker Desktop CLI provides: diff --git a/content/manuals/desktop/features/networking.md b/content/manuals/desktop/features/networking.md index 71156eebdf04..0c10d88c2809 100644 --- a/content/manuals/desktop/features/networking.md +++ b/content/manuals/desktop/features/networking.md @@ -49,9 +49,9 @@ syntax for `-p` is `HOST_PORT:CLIENT_PORT`. See [Proxies](/manuals/desktop/settings-and-maintenance/settings.md#proxies) -### SOCKS5 proxy support +### SOCKS5 proxy support -{{< introduced desktop 4.28.0 "../release-notes.md#4280" >}} +{{< summary-bar feature_name="SOCKS5 proxy support" >}} > [!NOTE] > diff --git a/content/manuals/desktop/setup/install/enterprise-deployment/msi-install-and-configure.md b/content/manuals/desktop/setup/install/enterprise-deployment/msi-install-and-configure.md index 9ddc34b2b6d9..a9cdcce4a247 100644 --- a/content/manuals/desktop/setup/install/enterprise-deployment/msi-install-and-configure.md +++ b/content/manuals/desktop/setup/install/enterprise-deployment/msi-install-and-configure.md @@ -4,23 +4,21 @@ description: Understand how to use the MSI installer. Also explore additional co keywords: msi, windows, docker desktop, install, deploy, configure, admin, mdm tags: [admin] weight: 10 -aliases: +aliases: - /desktop/install/msi/install-and-configure/ - /desktop/setup/install/msi/install-and-configure/ --- -> [!NOTE] -> -> The MSI installer is available to all company and organization owners with a Business subscription and Docker Desktop version 4.32 and later. +{{< summary-bar feature_name="MSI installer" >}} The MSI package supports various MDM (Mobile Device Management) solutions, making it ideal for bulk installations and eliminating the need for manual setups by individual users. With this package, IT administrators can ensure standardized, policy-driven installations of Docker Desktop, enhancing efficiency and software management across their organizations. ## Install interactively -1. In the [Docker Admin Console](http://admin.docker.com/), navigate to your organization. -2. Under **Security and access**, select the **Deploy Docker Desktop** page. -3. From the **Windows OS** tab, select the **Download MSI installer** button. -4. Once downloaded, double-click `Docker Desktop Installer.msi` to run the installer. +1. In the [Docker Admin Console](http://admin.docker.com/), navigate to your organization. +2. Under **Security and access**, select the **Deploy Docker Desktop** page. +3. From the **Windows OS** tab, select the **Download MSI installer** button. +4. Once downloaded, double-click `Docker Desktop Installer.msi` to run the installer. 5. Once you've accepted the license agreement, you can choose the install location. By default, Docker Desktop is installed at `C:\Program Files\Docker\Docker`. 6. Configure the Docker Desktop installation. You can: @@ -36,7 +34,7 @@ The MSI package supports various MDM (Mobile Device Management) solutions, makin If your administrator account is different to your user account, you must add the user to the **docker-users** group: 1. Run **Computer Management** as an **administrator**. -2. Navigate to **Local Users and Groups** > **Groups** > **docker-users**. +2. Navigate to **Local Users and Groups** > **Groups** > **docker-users**. 3. Right-click to add the user to the group. 4. Sign out and sign back in for the changes to take effect. @@ -44,7 +42,7 @@ If your administrator account is different to your user account, you must add th > > When installing Docker Desktop with the MSI, in-app updates are automatically disabled. This feature ensures your organization maintains the required Docker Desktop version. For Docker Desktop installed with the .exe installer, in-app updates remain supported. > -> Docker Desktop notifies you when an update is available. To update Docker Desktop, download the latest installer from the Docker Admin Console. Navigate to the **Deploy Docker Desktop** page > under **Security and access**. +> Docker Desktop notifies you when an update is available. To update Docker Desktop, download the latest installer from the Docker Admin Console. Navigate to the **Deploy Docker Desktop** page > under **Security and access**. > > To keep up to date with new releases, check the [release notes](/manuals/desktop/release-notes.md) page. @@ -52,9 +50,9 @@ If your administrator account is different to your user account, you must add th This section covers command line installations of Docker Desktop using PowerShell. It provides common installation commands that you can run. You can also add additional arguments which are outlined in [configuration options](#configuration-options). -When installing Docker Desktop, you can choose between interactive or non-interactive installations. +When installing Docker Desktop, you can choose between interactive or non-interactive installations. -Interactive installations, without specifying `/quiet` or `/qn`, display the user interface and let you select your own properties. +Interactive installations, without specifying `/quiet` or `/qn`, display the user interface and let you select your own properties. When installing via the user interface it's possible to: @@ -239,7 +237,7 @@ The registry key is as follows: SOFTWARE\Docker Inc.\Docker Desktop\DisableMsiAnalytics ``` -When analytics is disabled, this key has a value of `1`. +When analytics is disabled, this key has a value of `1`. ## Additional resources diff --git a/content/manuals/desktop/setup/install/enterprise-deployment/use-jamf-pro.md b/content/manuals/desktop/setup/install/enterprise-deployment/use-jamf-pro.md index e2b2b98fff76..b0f2d03a9d58 100644 --- a/content/manuals/desktop/setup/install/enterprise-deployment/use-jamf-pro.md +++ b/content/manuals/desktop/setup/install/enterprise-deployment/use-jamf-pro.md @@ -6,6 +6,8 @@ tags: [admin] weight: 40 --- +{{< summary-bar feature_name="Jamf Pro" >}} + Learn how to deploy Docker Desktop for Mac using Jamf Pro. First, upload the package: diff --git a/content/manuals/engine/cli/otel.md b/content/manuals/engine/cli/otel.md index b9b9f979ee81..eae9f0a95b87 100644 --- a/content/manuals/engine/cli/otel.md +++ b/content/manuals/engine/cli/otel.md @@ -6,7 +6,7 @@ aliases: - /config/otel/ --- -{{< introduced engine 26.1.0 >}} +{{< summary-bar feature_name="Docker CLI OpenTelemetry" >}} The Docker CLI supports [OpenTelemetry](https://opentelemetry.io/docs/) instrumentation for emitting metrics about command invocations. This is disabled by default. diff --git a/content/manuals/security/for-admins/hardened-desktop/enhanced-container-isolation/config.md b/content/manuals/security/for-admins/hardened-desktop/enhanced-container-isolation/config.md index 146b7362681a..6719541d764a 100644 --- a/content/manuals/security/for-admins/hardened-desktop/enhanced-container-isolation/config.md +++ b/content/manuals/security/for-admins/hardened-desktop/enhanced-container-isolation/config.md @@ -138,7 +138,7 @@ ones in the repository. ### Docker Socket Mount Permissions for derived images -{{< introduced desktop 4.34.0 "../../../../desktop/release-notes.md#4340" >}} +{{< summary-bar feature_name="Docker Scout Mount Permissions" >}} As described in the prior section, administrators can configure the list of container images that are allowed to mount the Docker socket via the `imageList`. diff --git a/content/reference/compose-file/build.md b/content/reference/compose-file/build.md index e2407c809811..0a4847fdca76 100644 --- a/content/reference/compose-file/build.md +++ b/content/reference/compose-file/build.md @@ -83,7 +83,7 @@ Alternatively `build` can be an object with fields defined as follows: ### `additional_contexts` -{{< introduced compose 2.17.0 "/manuals/compose/releases/release-notes.md#2170" >}} +{{< summary-bar feature_name="Build additional contexts" >}} `additional_contexts` defines a list of named contexts the image builder should use during image build. @@ -229,7 +229,7 @@ build: ### `dockerfile_inline` -{{< introduced compose 2.17.0 "/manuals/compose/releases/release-notes.md#2170" >}} +{{< summary-bar feature_name="Build dockerfile inline" >}} `dockerfile_inline` defines the Dockerfile content as an inlined string in a Compose file. When set, the `dockerfile` attribute is not allowed and Compose rejects any Compose file having both set. @@ -246,7 +246,7 @@ build: ### `entitlements` -{{< introduced compose 2.27.1 "/manuals/compose/releases/release-notes.md#2271" >}} +{{< summary-bar feature_name="Build entitlements" >}} `entitlements` defines extra privileged entitlements to be allowed during the build. @@ -392,7 +392,7 @@ Composes reports an error in the following cases: ### `privileged` -{{< introduced compose 2.15.0 "/manuals/compose/releases/release-notes.md#2" >}} +{{< summary-bar feature_name="Build privileged" >}} `privileged` configures the service image to build with elevated privileges. Support and actual impacts are platform specific. @@ -555,7 +555,7 @@ build: ### `ulimits` -{{< introduced compose 2.23.1 "/manuals/compose/releases/release-notes.md#2231" >}} +{{< summary-bar feature_name="Build ulimits" >}} `ulimits` overrides the default `ulimits` for a container. It's specified either as an integer for a single limit or as mapping for soft/hard limits. diff --git a/content/reference/compose-file/develop.md b/content/reference/compose-file/develop.md index 2ce34d696f7b..894afde0a51d 100644 --- a/content/reference/compose-file/develop.md +++ b/content/reference/compose-file/develop.md @@ -64,9 +64,9 @@ Compose to monitor source code for changes. For more information, see [Use Compo #### `exec` -{{< introduced compose 2.23.2 "/manuals/compose/releases/release-notes.md#2232" >}} +{{< summary-bar feature_name="Compose exec" >}} -`exec` is only relevant when `action` is set to `sync+exec`. Like [service hooks](services.md#post_start), `exec` is used to define the command to be run inside the container once it has started. +`exec` is only relevant when `action` is set to `sync+exec`. Like [service hooks](services.md#post_start), `exec` is used to define the command to be run inside the container once it has started. - `command`: Specifies the command to run once the container starts. This attribute is required, and you can choose to use either the shell form or the exec form. - `user`: The user to run the command. If not set, the command is run with the same user as the main service command. diff --git a/content/reference/compose-file/include.md b/content/reference/compose-file/include.md index 845916699032..a04edb353004 100644 --- a/content/reference/compose-file/include.md +++ b/content/reference/compose-file/include.md @@ -2,12 +2,12 @@ title: Include description: Learn about include keywords: compose, compose specification, include, compose file reference -aliases: +aliases: - /compose/compose-file/14-include/ weight: 110 --- -{{< introduced compose 2.20.0 "/manuals/compose/releases/release-notes.md#2200" >}} +{{< summary-bar feature_name="Composefile include" >}} A Compose application can declare dependency on another Compose application. This is useful if: - You want to reuse other Compose files. @@ -15,15 +15,15 @@ A Compose application can declare dependency on another Compose application. Thi - Teams need to keep a Compose file reasonably complicated for the limited amount of resources it has to declare for its own sub-domain within a larger deployment. The `include` top-level section is used to define the dependency on another Compose application, or sub-domain. -Each path listed in the `include` section is loaded as an individual Compose application model, with its own project directory, in order to resolve relative paths. +Each path listed in the `include` section is loaded as an individual Compose application model, with its own project directory, in order to resolve relative paths. -Once the included Compose application is loaded, all resource definitions are copied into the -current Compose application model. Compose displays a warning if resource names conflict and doesn't -try to merge them. To enforce this, `include` is evaluated after the Compose file(s) selected -to define the Compose application model have been parsed and merged, so that conflicts +Once the included Compose application is loaded, all resource definitions are copied into the +current Compose application model. Compose displays a warning if resource names conflict and doesn't +try to merge them. To enforce this, `include` is evaluated after the Compose file(s) selected +to define the Compose application model have been parsed and merged, so that conflicts between Compose files are detected. -`include` applies recursively so an included Compose file which declares its own `include` section triggers those other files to be included as well. +`include` applies recursively so an included Compose file which declares its own `include` section triggers those other files to be included as well. Any volumes, networks, or other resources pulled in from the included Compose file can be used by the current Compose application for cross-service references. For example: @@ -48,7 +48,7 @@ include: The short syntax only defines paths to other Compose files. The file is loaded with the parent folder as the project directory, and an optional `.env` file that is loaded to define any variables' default values -by interpolation. The local project's environment can override those values. +by interpolation. The local project's environment can override those values. ```yaml include: @@ -61,9 +61,9 @@ services: - included-service # defined by another_domain ``` -In the previous example, both `../commons/compose.yaml` and -`../another_domain/compose.yaml` are loaded as individual Compose projects. Relative paths -in Compose files being referred by `include` are resolved relative to their own Compose +In the previous example, both `../commons/compose.yaml` and +`../another_domain/compose.yaml` are loaded as individual Compose projects. Relative paths +in Compose files being referred by `include` are resolved relative to their own Compose file path, not based on the local project's directory. Variables are interpolated using values set in the optional `.env` file in same folder and are overridden by the local project's environment. @@ -90,21 +90,21 @@ local Compose model. ```yaml include: - - path: + - path: - ../commons/compose.yaml - ./commons-override.yaml ``` ### `project_directory` -`project_directory` defines a base path to resolve relative paths set in the Compose file. It defaults to +`project_directory` defines a base path to resolve relative paths set in the Compose file. It defaults to the directory of the included Compose file. ### `env_file` `env_file` defines an environment file(s) to use to define default values when interpolating variables -in the Compose file being parsed. It defaults to `.env` file in the `project_directory` for the Compose -file being parsed. +in the Compose file being parsed. It defaults to `.env` file in the `project_directory` for the Compose +file being parsed. `env_file` can be set to either a string or a list of strings when multiple environment files need to be merged to define a project environment. diff --git a/content/reference/compose-file/merge.md b/content/reference/compose-file/merge.md index cf713b6442b4..321320fc6548 100644 --- a/content/reference/compose-file/merge.md +++ b/content/reference/compose-file/merge.md @@ -182,9 +182,9 @@ services: ### Replace value -{{< introduced compose 2.24.4 "/manuals/compose/releases/release-notes.md#2244" >}} +{{< summary-bar feature_name="Compose replace file" >}} -While `!reset` can be used to remove a declaration from a Compose file using an override file, `!override` allows you +While `!reset` can be used to remove a declaration from a Compose file using an override file, `!override` allows you to fully replace an attribute, bypassing the standard merge rules. A typical example is to fully replace a resource definition, to rely on a distinct model but using the same name. A base `compose.yaml` file: @@ -194,7 +194,7 @@ services: app: image: myapp ports: - - "8080:80" + - "8080:80" ``` To remove the original port, but expose a new one, the following override file is used: diff --git a/content/reference/compose-file/services.md b/content/reference/compose-file/services.md index e3c32eb67cc5..c4ce1d542b54 100644 --- a/content/reference/compose-file/services.md +++ b/content/reference/compose-file/services.md @@ -91,7 +91,7 @@ annotations: ### `attach` -{{< introduced compose 2.20.0 "/manuals/compose/releases/release-notes.md#2200" >}} +{{< summary-bar feature_name="Compose attach" >}} When `attach` is defined and set to `false` Compose does not collect service logs, until you explicitly request it to. @@ -233,7 +233,7 @@ cap_drop: ### `cgroup` -{{< introduced compose 2.15.0 "/manuals/compose/releases/release-notes.md#2150" >}} +{{< summary-bar feature_name="Compose cgroup" >}} `cgroup` specifies the cgroup namespace to join. When unset, it is the container runtime's decision to select which cgroup namespace to use, if supported. @@ -264,17 +264,17 @@ If the value is `[]` (empty list) or `''` (empty string), the default command de > [!NOTE] > > Unlike the `CMD` instruction in a Dockerfile, the `command` field doesn't automatically run within the context of the [`SHELL`](/reference/dockerfile.md#shell-form) instruction defined in the image. If your `command` relies on shell-specific features, such as environment variable expansion, you need to explicitly run it within a shell. For example: -> +> > ```yaml > command: /bin/sh -c 'echo "hello $$HOSTNAME"' > ``` -The value can also be a list, similar to the [exec-form syntax](/reference/dockerfile.md#exec-form) +The value can also be a list, similar to the [exec-form syntax](/reference/dockerfile.md#exec-form) used by the [Dockerfile](/reference/dockerfile.md#exec-form). ### `configs` -`configs` let services adapt their behaviour without the need to rebuild a Docker image. +`configs` let services adapt their behaviour without the need to rebuild a Docker image. Services can only access configs when explicitly granted by the `configs` attribute. Two different syntax variants are supported. Compose reports an error if `config` doesn't exist on the platform or isn't defined in the @@ -287,7 +287,7 @@ You can grant a service access to multiple configs, and you can mix long and sho #### Short syntax The short syntax variant only specifies the config name. This grants the -container access to the config and mounts it as files into a service’s container’s filesystem. The location of the mount point within the container defaults to `/` in Linux containers, and `C:\` in Windows containers. +container access to the config and mounts it as files into a service’s container’s filesystem. The location of the mount point within the container defaults to `/` in Linux containers, and `C:\` in Windows containers. The following example uses the short syntax to grant the `redis` service access to the `my_config` and `my_other_config` configs. The value of @@ -496,7 +496,7 @@ Compose guarantees dependency services marked with ### `develop` -{{< introduced compose 2.22.0 "/manuals/compose/releases/release-notes.md#2220" >}} +{{< summary-bar feature_name="Compose develop" >}} `develop` specifies the development configuration for maintaining a container in sync with source, as defined in the [Development Section](develop.md). @@ -567,7 +567,7 @@ dns_search: ### `driver_opts` -{{< introduced compose 2.27.1 "/manuals/compose/releases/release-notes.md#2271" >}} +{{< summary-bar feature_name="Compose driver opts" >}} `driver_opts` specifies a list of options as key-value pairs to pass to the driver. These options are driver-dependent. @@ -643,7 +643,7 @@ attributes. #### `required` -{{< introduced compose 2.24.0 "/manuals/compose/releases/release-notes.md#2240" >}} +{{< summary-bar feature_name="Compose required" >}} The `required` attribute defaults to `true`. When `required` is set to `false` and the `.env` file is missing, Compose silently ignores the entry. @@ -657,7 +657,7 @@ env_file: #### `format` -{{< introduced compose 2.30.0 "/manuals/compose/releases/release-notes.md#2300" >}} +{{< summary-bar feature_name="Compose format" >}} The `format` attribute lets you use an alternative file format for the `env_file`. When not set, `env_file` is parsed according to the Compose rules outlined in [`Env_file` format](#env_file-format). @@ -1158,7 +1158,7 @@ results in a runtime error. ### `label_file` -{{< introduced compose 2.23.2 "/manuals/compose/releases/release-notes.md#2232" >}} +{{< summary-bar feature_name="Compose label file" >}} The `label_file` attribute lets you load labels for a service from an external file or a list of files. This provides a convenient way to manage multiple labels without cluttering the Compose file. @@ -1167,10 +1167,10 @@ The file uses a key-value format, similar to `env_file`. You can specify multipl ```yaml services: one: - label_file: ./app.labels - + label_file: ./app.labels + two: - label_file: + label_file: - ./app.labels - ./additional.labels ``` @@ -1398,7 +1398,7 @@ networks: #### `mac_address` -{{< introduced compose 2.23.2 "/manuals/compose/releases/release-notes.md#2232" >}} +{{< summary-bar feature_name="Compose mac address" >}} `mac_address` sets the Mac address used by the service container when connecting to this particular network. @@ -1552,7 +1552,7 @@ ports: ### `post_start` -{{< introduced compose 2.30.0 "../../manuals/compose/releases/release-notes.md#2300" >}} +{{< summary-bar feature_name="Compose post start" >}} `post_start` defines a sequence of lifecycle hooks to run after a container has started. The exact timing of when the command is run is not guaranteed. @@ -1577,7 +1577,7 @@ For more information, see [Use lifecycle hooks](/manuals/compose/how-tos/lifecyc ### `pre_stop` -{{< introduced compose 2.30.0 "../../manuals/compose/releases/release-notes.md#2300" >}} +{{< summary-bar feature_name="Compose pre stop" >}} `pre_stop` defines a sequence of lifecycle hooks to run before the container is stopped. These hooks won't run if the container stops by itself or is terminated suddenly. @@ -1874,7 +1874,7 @@ userns_mode: "host" ### `uts` -{{< introduced compose 2.15.1 "/manuals/compose/releases/release-notes.md#2151" >}} +{{< summary-bar feature_name="Compose uts" >}} `uts` configures the UTS namespace mode set for the service container. When unspecified it is the runtime's decision to assign a UTS namespace, if supported. Available values are: diff --git a/data/summary.yaml b/data/summary.yaml index 225227f8ac83..e231809c0e55 100644 --- a/data/summary.yaml +++ b/data/summary.yaml @@ -9,7 +9,7 @@ Admin orgs: subscription: [Team, Business] for: Administrators Air-gapped containers: - requires: Docker Desktop 4.29.0 and later + requires: Docker Desktop [4.29.0](/manuals/desktop/release-notes.md#4290) and later Allow list: for: Administrators Amazon S3 cache: @@ -20,41 +20,113 @@ Automated builds: subscription: [Pro, Team, Business] Azure blob: availability: Experimental +Build additional contexts: + requires: Docker Compose [2.17.0](/manuals/compose/releases/release-notes.md#2170) and later Build bake: availability: Experimental Build checks: availability: Beta - requires: Buildx v0.15.0 and later + requires: Docker Buildx [0.15.0](/manuals/compose/releases/release-notes.md#0150) and later +Build dockerfile inline: + requires: Docker Compose [2.17.0](/manuals/compose/releases/release-notes.md#2170) and later +Build entitlements: + requires: Docker Compose [2.27.1](/manuals/compose/releases/release-notes.md#2271) and later +Build multiple exporters: + requires: Docker Buildx [0.13.0]((/manuals/build/release-notes.md#0130) and later +Buildkit host: + requires: Docker Buildx [0.9.0](/manuals/build/release-notes.md#090) and later +Build privileged: + requires: Docker Compose [2.15.0](/manuals/compose/releases/release-notes.md#2) and later +Build ulimits: + requires: Docker Compose [2.23.1](/manuals/compose/releases/release-notes.md#2231) and later +Buildx bake Git auth token: + requires: Docker Buildx [0.14.0](/manuals/build/release-notes.md#0140) and later +Buildx bake Git SSH: + requires: Docker Buildx [0.14.0](/manuals/build/release-notes.md#0140) and later +Buildx CPU profile: + requires: Docker Buildx [0.18.0](/manuals/build/release-notes.md#0180) and later +Buildx Git check dirty: + requires: Docker Buildx [0.10.4](/manuals/build/release-notes.md#0104) and later +Buildx Git info: + requires: Docker Buildx [0.10.0](/manuals/build/release-notes.md#0100) and later +Buildx Git labels: + requires: Docker Buildx [0.10.0](/manuals/build/release-notes.md#0100) and later +Buildx mem profile: + requires: Docker Buildx [0.18.0](/manuals/build/release-notes.md#0180) and later +Buildx no default: + requires: Docker Buildx [0.10.4](/manuals/build/release-notes.md#0104) and later Cache backend API: availability: Experimental Company: subscription: [Business] for: Administrators +Compose attach: + requires: Docker Compose [2.20.0](/manuals/compose/releases/release-notes.md#2200) and later Compose bridge: availability: Experimental +Compose cgroup: + requires: Docker Compose [2.15.0](/manuals/compose/releases/release-notes.md#2200) and later +Compose develop: + requires: Docker Compose [2.22.0](/manuals/compose/releases/release-notes.md#2220) and later +Compose driver opts: + requires: Docker Compose [2.27.1](/manuals/compose/releases/release-notes.md#2271) and later +Compose exec: + requires: Docker Compose [2.32.2](/manuals/compose/releases/release-notes.md#2232) and later +Compose experimental: + requires: Docker Compose [2.26.0](/manuals/compose/releases/release-notes.md#2260) and later +Compose file watch: + requires: Docker Compose [2.22.0](/manuals/compose/releases/release-notes.md#2220) and later +Compose format: + requires: Docker Compose [2.30.0](/manuals/compose/releases/release-notes.md#2300) and later +Compose include: + requires: Docker Compose [2.20.3](/manuals/compose/releases/release-notes.md#2203) and later +Compose label file: + requires: Docker Compose [2.32.2](/manuals/compose/releases/release-notes.md#2232) and later +Compose lifecycle hooks: + requires: Docker Compose [2.30.0](/manuals/compose/releases/release-notes.md#2300) and later +Compose mac address: + requires: Docker Compose [2.23.2](/manuals/compose/releases/release-notes.md#2232) and later +Compose menu: + requires: Docker Compose [2.26.0](/manuals/compose/releases/release-notes.md#2260) and later +Compose replace file: + requires: Docker Compose [2.24.4](/manuals/compose/releases/release-notes.md#2244) and later +Compose required: + requires: Docker Compose [2.24.0](/manuals/compose/releases/release-notes.md#2271) and later +Compose post start: + requires: Docker Compose [2.30.0](/manuals/compose/releases/release-notes.md#2300) and later +Compose pre stop: + requires: Docker Compose [2.30.0](/manuals/compose/releases/release-notes.md#2300) and later +Compose uts: + requires: Docker Compose [2.15.1](/manuals/compose/releases/release-notes.md#2151) and later +Composefile include: + requires: Docker Compose [2.20.0](/manuals/compose/releases/release-notes.md#2200) and later containerd: availability: Experimental Dev Environments: availability: Beta Docker Build Cloud: subscription: [Pro, Team, Business] +Docker CLI OpenTelemetry: + requires: Docker Engine [26.1.0](/manuals/engine/release-notes/26.1.md#2610) and later docker compose alpha: availability: Experimental Docker Desktop Archlinux: availability: Experimental Docker Desktop CLI: availability: Beta - requires: Docker Desktop 4.37 and later + requires: Docker Desktop [4.37](/manuals/desktop/release-notes.md#4370) and later Docker GitHub Copilot: availability: Early access Docker Scout exceptions: availability: Experimental - requires: Docker Scout CLI 1.15.0 and later + requires: Docker Scout CLI [1.15.0](/manuals/scout/release-notes/cli.md#1150) and later Docker Scout GitHub: availability: Beta Docker Scout health scores: subscription: [Pro, Team, Business] availability: Beta +Docker Scout Mount Permissions: + requires: Docker Desktop [4.34.0](/manuals/desktop/release-notes.md#4340) and later Domain audit: subscription: [Business] for: Administrators @@ -70,7 +142,7 @@ Hardened Docker Desktop: for: Administrators Import builds: availability: Beta - requires: Docker Desktop 4.31 and later + requires: Docker Desktop [4.31](/manuals/desktop/release-notes.md#4310) and later Insights: subscription: [Business] for: Administrators @@ -78,8 +150,10 @@ Intune: for: Administrators Jamf Pro: for: Administrators -MSI Installer: - availability: Docker Desktop 4.32 and later +Load by default: + requires: Docker Buildx [0.14.0](/manuals/build/release-notes.md#0140) and later +MSI installer: + requires: Docker Desktop [4.32](/manuals/desktop/release-notes.md#4320) and later for: Administrators OATs: subscription: [Team, Business] @@ -87,7 +161,7 @@ OATs: PKG installer: subscription: [Business] availability: Early access - requires: Docker Desktop 4.36 and later + requires: Docker Desktop [4.36](/manuals/desktop/release-notes.md#4360) and later for: Administrators Private marketplace: availability: Beta @@ -97,17 +171,19 @@ Remediation with Docker Scout: Registry access management: subscription: [Business] for: Administrators +SOCKS5 proxy support: + requires: Docker Desktop [4.28.0](/manuals/desktop/release-notes.md#4280) and later SSO: subscription: [Business] for: Administrators Synchronized file sharing: subscription: [Pro, Team, Business] - requires: Docker Desktop 4.27 and later + requires: Docker Desktop [4.27](/manuals/desktop/release-notes.md#4270) and later USB/IP support: - requires: Docker Desktop 4.35.0 and later + requires: Docker Desktop [4.35.0](/manuals/desktop/release-notes.md#4350) and later VMM: availability: Beta - requires: Docker Desktop 4.35.0 and later + requires: Docker Desktop [4.35.0](/manuals/desktop/release-notes.md#4350) and later Wasm workloads: availability: Beta Wasmtime: diff --git a/hugo.yaml b/hugo.yaml index 316ac97a8065..f82c878f764e 100644 --- a/hugo.yaml +++ b/hugo.yaml @@ -127,17 +127,6 @@ params: example_alpine_version: "3.21" example_node_version: "20" - # Minimum version thresholds (used together with the "introduced" shortcode - # See layouts/shortcodes/introduced.html - min_version_thresholds: - buildx: "0.10.0" - buildkit: "0.11.0" - engine: "24.0.0" - api: "1.41" - desktop: "4.20.0" - compose: "2.14.0" - scout: "1.0.0" - menus: # Site header menu main: diff --git a/i18n/en.yaml b/i18n/en.yaml index 32d25ee84ff0..bbe778e7d11c 100644 --- a/i18n/en.yaml +++ b/i18n/en.yaml @@ -34,21 +34,4 @@ apiPropValue: apiPropReq: other: Required apiPropDesc: - other: Description - -## component names - -buildx: - other: Buildx -buildkit: - other: BuildKit -engine: - other: Docker Engine -api: - other: Engine API -desktop: - other: Docker Desktop -compose: - other: Docker Compose -scout: - other: Docker Scout + other: Description \ No newline at end of file diff --git a/layouts/shortcodes/introduced.html b/layouts/shortcodes/introduced.html deleted file mode 100644 index 3ae8298be449..000000000000 --- a/layouts/shortcodes/introduced.html +++ /dev/null @@ -1,57 +0,0 @@ -{{- /* -Renders a version callout for when a feature was introduced in a component. - -Accepts positional parameters. -Depends on site.Params.min_version_thresholds and i18n strings for component IDs - -@param {string} component The ID of the component as defined in site config. -@param {string} version The version of the component in which the thing was introduced. -@param {string} [link] A relevant link to e.g. release note. - -@returns {template.HTML} - -@examples - - {{< introduced buildx 0.12.0 "../release-notes.md#0120" >}} - - {{< introduced desktop "4.28" "https://example.com/" >}} - -*/ -}} - -{{- $component := .Get 0 }} -{{- $v := .Get 1 }} -{{- $link := .Get 2 }} -{{- $pos := .Position }} -{{- with (index site.Params.min_version_thresholds $component) }} - {{- /* - Hacky semver comparison. - - - Split the input version and threshold version strings - - Range over the input version []string - - Cast to ints and compare input with same index threshold []string - - Set threshold false if input is lower than config, and break - */ -}} - {{ $vslice := strings.Split $v "." }} - {{ $tslice := strings.Split . "." }} - {{ $versionAboveThreshold := true }} - {{ range $i, $e := $vslice }} - {{ if compare.Lt (cast.ToInt $e) (cast.ToInt (index $tslice $i)) }} - {{ $versionAboveThreshold = false }} - {{ break }} - {{ end }} - {{ end }} - {{- if $versionAboveThreshold }} -
- {{ partialCached "icon.html" "chevron_right" "chevron_right" }} - Introduced in {{ T $component }} version - {{- if $link }} - {{ page.RenderString (fmt.Printf `[%s](%s)` $v $link) }} - {{- else }} - {{ $v }} - {{- end }} - -
- {{- end }} -{{- else }} - {{ errorf "[introduced] invalid component: %s %v" $component $pos }} -{{- end }} diff --git a/layouts/shortcodes/summary-bar.html b/layouts/shortcodes/summary-bar.html index a36cb0463ef6..d0c774aac69e 100644 --- a/layouts/shortcodes/summary-bar.html +++ b/layouts/shortcodes/summary-bar.html @@ -57,7 +57,7 @@ {{ with $feature.requires }}
Requires: - {{ . }} + {{ . | markdownify }} {{ partial "icon" $requiresIcon }} From 399a3638599dba33067f5e20957181f7357ea522 Mon Sep 17 00:00:00 2001 From: Lorena Rangel Date: Thu, 30 Jan 2025 17:24:37 +0100 Subject: [PATCH 2/7] Docker desktop 4.38 release notes (#21901) ## Description Docker Desktop 4.38 release notes ## Related issues or tickets ## Reviews - [ ] Technical review - [ ] Editorial review - [ ] Product review --------- Signed-off-by: Lorena Rangel Co-authored-by: Allie Sadler <102604716+aevesdocker@users.noreply.github.com> --- content/manuals/desktop/release-notes.md | 63 ++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/content/manuals/desktop/release-notes.md b/content/manuals/desktop/release-notes.md index edc23caed501..0e386d9be085 100644 --- a/content/manuals/desktop/release-notes.md +++ b/content/manuals/desktop/release-notes.md @@ -27,6 +27,69 @@ Take a look at the [Docker Public Roadmap](https://github.com/orgs/docker/projec > > If you're experiencing malware detection issues on Mac, follow the steps documented in [docker/for-mac#7527](https://github.com/docker/for-mac/issues/7527). +## 4.38.0 + +{{< release-date date="2025-01-30" >}} + +{{< desktop-install-v2 all=true beta_win_arm=true version="4.38.0" build_path="/181591/" >}} + +### New + +- Installing Docker Desktop via the PKG installer is now generally available. +- Enforcing sign in via configuration profiles is now generally available. +- Docker Compose, Docker Scout, the Docker CLI, and Ask Gordon can now be updated independently of Docker Desktop and without a full restart (Beta). +- The new `update` command has been added to the Docker Desktop CLI (Mac only). +- [Bake](/manuals//build/bake/_index.md) is now GA, with support for entitlements and composable attributes. +- You can now create multi-node Kubernetes clusters in Docker Desktop. +- [Ask Gordon](/manuals/desktop/features/gordon.md) is more widely available. It is still in Beta. + +### Upgrades + +- [containerd v1.7.24](https://github.com/containerd/containerd/releases/tag/v1.7.24) +- [Docker Buildx v0.20.1](https://github.com/docker/buildx/releases/tag/v0.20.1) +- [Docker Compose v2.32.4](https://github.com/docker/compose/releases/tag/v2.32.4) +- [Docker Engine v27.5.1](https://docs.docker.com/engine/release-notes/27/#2751) +- [Docker Scout CLI v1.16.1](https://github.com/docker/scout-cli/releases/tag/v1.16.1) +- [Runc v1.2.2](https://github.com/opencontainers/runc/releases/tag/v1.2.2) +- [NVIDIA Container Toolkit v1.17.4](https://github.com/NVIDIA/nvidia-container-toolkit/releases/tag/v1.17.4) +- [Kubernetes v1.31.4](https://github.com/kubernetes/kubernetes/releases/tag/v1.31.4) +- Docker Debug `v0.0.38` + +### Bug fixes and enhancements + +#### For all platforms + +- Fixed a bug where access tokens generated by the `docker login` web flow could not be refreshed by Docker Desktop. +- Fixed a bug where container creation via the Docker API using `curl` failed when [Enhanced Container Isolation](/manuals/security/for-admins/hardened-desktop/enhanced-container-isolation/_index.md) was enabled. +- Fixed a bug where the RAM policy was not refreshed after the refresh period had elapsed. +- Fixed a bug in Enhanced Container Isolation when mounting the Docker socket into a container, and then creating Docker containers with bind-mounts from within that container. +- Fixed an issue that caused a discrepancy between the GUI and the CLI, the former forcing the `0.0.0.0` HostIP in port-mappings. This caused default binding IPs configured through Engine's `ip` flag, or through the bridge option `com.docker.network.bridge.host_binding_ipv4`, to not be used. +- Fixed a bug where the `pac` setting was ignored in `admin-settings.json`. + +#### For Mac + +- Fixed a bug in Docker VMM where bind-mounts from non-root volumes would weren't working as expected. +- Fixed an issue that caused startup failures on systems without IPv6. Fixes [docker/for-mac#14298](https://github.com/docker/for-win/issues/14298). +- Fixed a bug that caused Docker Desktop to hang. See [docker/for-mac#7493](https://github.com/docker/for-mac/issues/7493#issuecomment-2568594070). +- Fixed an issue where the uninstaller would fail if the settings file is missing. +- Fixed a bug where config profiles deployed via Workspace One were ignored. + +#### For Windows + +- The Docker Desktop installer will now present a UAC prompt when launched. +- Fixed an issue where Docker Desktop would fail to start for data disks created with old WSL versions that shared the same identifier as other WSL distros. +- Docker Desktop now restarts when WSL integration settings are changed. This ensures proper setup of WSL integration when using Enhanced Container Isolation. + +#### For Linux + +- Added support for gvisor networking. Users with an incompatible version of qemu (8.x) will stay on qemu networking, and others will be migrated automatically. + +### Deprecation + +#### For all platforms + +- Deprecate `com.docker.diagnose check|check-dot|check-hypervisordetect-host-hypervisor`. + ## 4.37.2 {{< release-date date="2025-01-09" >}} From 414c77d10b62e513085e94421447ed4d9ce92473 Mon Sep 17 00:00:00 2001 From: Allie Sadler <102604716+aevesdocker@users.noreply.github.com> Date: Thu, 30 Jan 2025 16:27:39 +0000 Subject: [PATCH 3/7] ENGDOCS-2405a (#21917) ## Description Add new DD CLI command for 4.38 ## Related issues or tickets ## Reviews - [ ] Technical review - [ ] Editorial review - [ ] Product review --- .../manuals/desktop/features/desktop-cli.md | 4 ++- .../reference/cli/docker/desktop/update.md | 8 +++++ data/desktop-cli/docker_desktop.yaml | 2 ++ data/desktop-cli/docker_desktop_update.yaml | 34 +++++++++++++++++++ data/summary.yaml | 3 ++ 5 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 content/reference/cli/docker/desktop/update.md create mode 100644 data/desktop-cli/docker_desktop_update.yaml diff --git a/content/manuals/desktop/features/desktop-cli.md b/content/manuals/desktop/features/desktop-cli.md index 0eec7eb55a3a..cd28840f1db9 100644 --- a/content/manuals/desktop/features/desktop-cli.md +++ b/content/manuals/desktop/features/desktop-cli.md @@ -35,6 +35,8 @@ docker desktop COMMAND [OPTIONS] | `restart` | Restarts Docker Desktop | | `status` | Displays whether Docker Desktop is running or stopped. | | `engine ls` | Lists available engines (Windows only) | -| `engine use` | Switch between Linux and Windows containers (Windows only) | +| `engine use` | Switch between Linux and Windows containers (Windows only) | +| `update` | Manage Docker Desktop updates. Available for Mac only and with Docker Desktop version 4.38 and later. | + For more details on each command, see the [Docker Desktop CLI reference](/reference/cli/docker/desktop/_index.md). diff --git a/content/reference/cli/docker/desktop/update.md b/content/reference/cli/docker/desktop/update.md new file mode 100644 index 000000000000..0f67e2ed171a --- /dev/null +++ b/content/reference/cli/docker/desktop/update.md @@ -0,0 +1,8 @@ +--- +datafolder: desktop-cli +datafile: docker_desktop_update +title: docker desktop update +layout: cli +--- + +{{< summary-bar feature_name="Docker Desktop CLI update" >}} \ No newline at end of file diff --git a/data/desktop-cli/docker_desktop.yaml b/data/desktop-cli/docker_desktop.yaml index a222a240064d..43fe0c765a62 100644 --- a/data/desktop-cli/docker_desktop.yaml +++ b/data/desktop-cli/docker_desktop.yaml @@ -10,12 +10,14 @@ cname: - docker desktop restart - docker desktop status - docker desktop engine + - docker desktop update clink: - docker_desktop_start.yaml - docker_desktop_stop.yaml - docker_desktop_restart.yaml - docker_desktop_status.yaml - docker_desktop_engine.yaml + - docker_desktop_update.yaml deprecated: false hidden: false experimental: false diff --git a/data/desktop-cli/docker_desktop_update.yaml b/data/desktop-cli/docker_desktop_update.yaml new file mode 100644 index 000000000000..55f3a8a37122 --- /dev/null +++ b/data/desktop-cli/docker_desktop_update.yaml @@ -0,0 +1,34 @@ +command: docker desktop update +short: Manage Docker Desktop updates (Mac only) +usage: docker desktop update [OPTIONS] +pname: docker desktop +plink: docker_desktop.yaml +options: + - option: check-only + shorthand: k + value_type: bool + default_value: false + description: Check for updates without applying them + deprecated: false + hidden: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false + - option: quiet + shorthand: q + value_type: bool + default_value: false + description: Queitly check and apply updates + deprecated: false + hidden: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +deprecated: false +hidden: false +experimental: false +experimentalcli: false +kubernetes: false +swarm: false \ No newline at end of file diff --git a/data/summary.yaml b/data/summary.yaml index e231809c0e55..2c0965a05e5f 100644 --- a/data/summary.yaml +++ b/data/summary.yaml @@ -115,6 +115,9 @@ Docker Desktop Archlinux: Docker Desktop CLI: availability: Beta requires: Docker Desktop [4.37](/manuals/desktop/release-notes.md#4370) and later +Docker Desktop CLI update: + requires: Docker Desktop 4.38 and later + requires: Docker GitHub Copilot: availability: Early access Docker Scout exceptions: From 433744e6c97db15a4f99aa6d1971ec6a77d08ea2 Mon Sep 17 00:00:00 2001 From: Allie Sadler <102604716+aevesdocker@users.noreply.github.com> Date: Thu, 30 Jan 2025 16:27:49 +0000 Subject: [PATCH 4/7] ENGDOCS-2405b (#21922) ## Description Kubernetes updates for 4.38 ## Related issues or tickets ## Reviews - [ ] Technical review - [ ] Editorial review - [ ] Product review --- _vale/config/vocabularies/Docker/accept.txt | 1 + .../manuals/desktop/features/kubernetes.md | 20 ++++++++++++++----- .../settings-and-maintenance/settings.md | 6 ++++++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/_vale/config/vocabularies/Docker/accept.txt b/_vale/config/vocabularies/Docker/accept.txt index 30a2146f27c4..d121035f1e46 100644 --- a/_vale/config/vocabularies/Docker/accept.txt +++ b/_vale/config/vocabularies/Docker/accept.txt @@ -57,6 +57,7 @@ Jamf JetBrains Kerberos Kitematic +Kubeadm Kubernetes Laravel Laradock diff --git a/content/manuals/desktop/features/kubernetes.md b/content/manuals/desktop/features/kubernetes.md index 7ad1a0415719..12978440c8f5 100644 --- a/content/manuals/desktop/features/kubernetes.md +++ b/content/manuals/desktop/features/kubernetes.md @@ -2,6 +2,7 @@ description: See how you can deploy to Kubernetes on Docker Desktop keywords: deploy, kubernetes, kubectl, orchestration, Docker Desktop title: Deploy on Kubernetes with Docker Desktop +linkTitle: Deploy on Kubernetes aliases: - /docker-for-windows/kubernetes/ - /docker-for-mac/kubernetes/ @@ -11,7 +12,7 @@ weight: 60 Docker Desktop includes a standalone Kubernetes server and client, as well as Docker CLI integration, enabling local Kubernetes development and testing directly on your machine. -The Kubernetes server runs as a single-node cluster within a Docker container. This lightweight setup helps you explore Kubernetes features, test workloads, and work with container orchestration in parallel with other Docker functionalities. +The Kubernetes server runs as a single or multi-node cluster within a Docker container. This lightweight setup helps you explore Kubernetes features, test workloads, and work with container orchestration in parallel with other Docker functionalities. Kubernetes on Docker Desktop runs alongside other workloads, including Swarm services and standalone containers. @@ -30,8 +31,11 @@ Turning the Kubernetes server on or off in Docker Desktop does not affect your o 1. Open the Docker Desktop Dashboard and navigate to **Settings**. 2. Select the **Kubernetes** tab. -3. Select the **Enable Kubernetes** checkbox. -4. Select **Apply & Restart** to save the settings and then select **Install** to confirm. This sets up the images required to run the Kubernetes server as containers, and installs the `kubectl` command-line tool on your system at `/usr/local/bin/kubectl` (Mac) or `C:\Program Files\Docker\Docker\Resources\bin\kubectl.exe` (Windows). +3. Toggle on **Enable Kubernetes**. +4. Choose your cluster provisioning method. You can choose either **Kubeadm** or **kind** if you are signed in and are using Docker Desktop version 4.38 or later. + + If you select **kind** you can also choose the Kubernetes version and the number of nodes. +5. Select **Apply & Restart** to save the settings. This sets up the images required to run the Kubernetes server as containers, and installs the `kubectl` command-line tool on your system at `/usr/local/bin/kubectl` (Mac) or `C:\Program Files\Docker\Docker\Resources\bin\kubectl.exe` (Windows). > [!NOTE] > @@ -45,9 +49,15 @@ You can check which version of Kubernetes you're on with: $ kubectl version ``` -### Viewing system containers +### Additional settings + +#### Kubernetes dashboard + +Once Kubernetes is installed and set up, you can select the **Deploy the Kubernetes Dashboard into cluster** setting so you can manage and monitor your Kubernetes clusters and applications more easily. + +#### Viewing system containers -By default, Kubernetes system containers are hidden. To inspect these containers, navigate to **Settings** > **Kubernetes** and then enable **Show system containers (advanced)**. +By default, Kubernetes system containers are hidden. To inspect these containers, enable **Show system containers (advanced)**. You can now view the running Kubernetes containers with `docker ps` or in the Docker Desktop Dashboard. diff --git a/content/manuals/desktop/settings-and-maintenance/settings.md b/content/manuals/desktop/settings-and-maintenance/settings.md index 9080ee5e2e85..07ad4bf44972 100644 --- a/content/manuals/desktop/settings-and-maintenance/settings.md +++ b/content/manuals/desktop/settings-and-maintenance/settings.md @@ -425,6 +425,12 @@ deploying your Docker workloads on Kubernetes. To turn on Kubernetes support and install a standalone instance of Kubernetes running as a Docker container, select **Enable Kubernetes**. +With Docker Desktop version 4.38 and later, you can choose your cluster provisioning method: + - **Kubeadm** creates a single-node cluster and the version is set by Docker Desktop. + - **kind** creates a multi-node cluster and you can set the version and number of nodes. + +Docker Desktop version 4.38 and later also lets you install the Kubernetes Dashboard within an existing Kubernetes cluster with the **Deploy the Kubernetes Dashboard into cluster** setting. It provides real-time visibility into workloads and nodes and helps you manage and monitor your Kubernetes clusters and applications easily. + Select **Show system containers (advanced)** to view internal containers when using Docker commands. From 6c882e6aae7e161659ce3dccf4f64209d390c34f Mon Sep 17 00:00:00 2001 From: Allie Sadler <102604716+aevesdocker@users.noreply.github.com> Date: Thu, 30 Jan 2025 16:28:03 +0000 Subject: [PATCH 5/7] ENGDOCS-2405c (#21924) ## Description Couple of items moving into GA ## Related issues or tickets ## Reviews - [ ] Technical review - [ ] Editorial review - [ ] Product review --- .../enterprise-deployment/pkg-install-and-configure.md | 5 ----- .../manuals/security/for-admins/enforce-sign-in/methods.md | 5 +---- data/summary.yaml | 3 ++- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/content/manuals/desktop/setup/install/enterprise-deployment/pkg-install-and-configure.md b/content/manuals/desktop/setup/install/enterprise-deployment/pkg-install-and-configure.md index 1307cdb96ab9..c612206a3900 100644 --- a/content/manuals/desktop/setup/install/enterprise-deployment/pkg-install-and-configure.md +++ b/content/manuals/desktop/setup/install/enterprise-deployment/pkg-install-and-configure.md @@ -4,11 +4,6 @@ description: Understand how to use the PKG installer. Also explore additional co keywords: pkg, mac, docker desktop, install, deploy, configure, admin, mdm tags: [admin] weight: 20 -params: - sidebar: - badge: - color: violet - text: EA --- {{< summary-bar feature_name="PKG installer" >}} diff --git a/content/manuals/security/for-admins/enforce-sign-in/methods.md b/content/manuals/security/for-admins/enforce-sign-in/methods.md index 863af9571ccb..e9922d55de19 100644 --- a/content/manuals/security/for-admins/enforce-sign-in/methods.md +++ b/content/manuals/security/for-admins/enforce-sign-in/methods.md @@ -53,10 +53,7 @@ The following example outlines how to deploy a registry key to enforce sign-in o ## Configuration profiles method (Mac only) -> [!NOTE] -> -> The configuration profiles method is in [Early Access](/manuals/release-lifecycle.md) -> and is available with Docker Desktop version 4.36 and later. +{{< summary-bar feature_name="Config profiles" >}} Configuration profiles are a feature of macOS that let you distribute configuration information to the Macs you manage. It is the safest method to diff --git a/data/summary.yaml b/data/summary.yaml index 2c0965a05e5f..9fdc5b9a4863 100644 --- a/data/summary.yaml +++ b/data/summary.yaml @@ -64,6 +64,8 @@ Compose attach: requires: Docker Compose [2.20.0](/manuals/compose/releases/release-notes.md#2200) and later Compose bridge: availability: Experimental +Config profiles: + requires: Docker Desktop 4.36 and later Compose cgroup: requires: Docker Compose [2.15.0](/manuals/compose/releases/release-notes.md#2200) and later Compose develop: @@ -163,7 +165,6 @@ OATs: availability: Beta PKG installer: subscription: [Business] - availability: Early access requires: Docker Desktop [4.36](/manuals/desktop/release-notes.md#4360) and later for: Administrators Private marketplace: From 65ed975abef23745054a24ae63beae32d7947f93 Mon Sep 17 00:00:00 2001 From: Allie Sadler <102604716+aevesdocker@users.noreply.github.com> Date: Thu, 30 Jan 2025 16:28:51 +0000 Subject: [PATCH 6/7] ENGDOCS-2405d (#21925) ## Description Small addition to update settings. Eng team didn't want a big announcement, so burying it slightly for now ## Related issues or tickets ## Reviews - [ ] Technical review - [x] Editorial review - [ ] Product review --- content/manuals/desktop/settings-and-maintenance/settings.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/manuals/desktop/settings-and-maintenance/settings.md b/content/manuals/desktop/settings-and-maintenance/settings.md index 07ad4bf44972..d3fb8530d746 100644 --- a/content/manuals/desktop/settings-and-maintenance/settings.md +++ b/content/manuals/desktop/settings-and-maintenance/settings.md @@ -456,6 +456,10 @@ when an update becomes available. After downloading the update, select **Apply and Restart** to install the update. You can do this either through the Docker menu or in the **Updates** section in the Docker Desktop Dashboard. +> [!TIP] +> +> With Docker Desktop version 4.38 and later, components of Docker Desktop, such as Docker Compose, Docker Scout, and the Docker CLI, can be updated independently without the need for a full restart. This feature is still in Beta. + ## Extensions Use the **Extensions** tab to: From 313ea775b36726104137258c7de1d083483c23e9 Mon Sep 17 00:00:00 2001 From: David Karlsson <35727626+dvdksn@users.noreply.github.com> Date: Thu, 30 Jan 2025 17:32:46 +0100 Subject: [PATCH 7/7] desktop: update Gordon enablement procedure for DD 4.38 (#21921) Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> --------- Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Co-authored-by: Allie Sadler <102604716+aevesdocker@users.noreply.github.com> Co-authored-by: Usha Mandya <47779042+usha-mandya@users.noreply.github.com> --- content/manuals/desktop/features/gordon.md | 40 +++++----------------- data/summary.yaml | 3 +- 2 files changed, 10 insertions(+), 33 deletions(-) diff --git a/content/manuals/desktop/features/gordon.md b/content/manuals/desktop/features/gordon.md index 469a9ac6ee62..19812b36941b 100644 --- a/content/manuals/desktop/features/gordon.md +++ b/content/manuals/desktop/features/gordon.md @@ -9,13 +9,7 @@ params: text: Beta --- -{{% restricted title=Beta %}} -Ask Gordon is a [Beta](/manuals/release-lifecycle.md) feature, and only members -of the Ask Gordon beta program can access it. Features, user interface, and -behavior are subject to change in future releases. - -{{< button text="Apply for access" url="https://docker.qualtrics.com/jfe/form/SV_dmVHFjQ4fZlrEOy" >}} -{{% /restricted %}} +{{< summary-bar feature_name="Ask Gordon" >}} Ask Gordon is your personal AI assistant embedded in Docker Desktop and the Docker CLI. It's designed to streamline your workflow and help you make the @@ -61,7 +55,8 @@ To provide accurate responses, Ask Gordon may send relevant files, directories, or image metadata to the Gordon backend along with your query. This data transfer occurs over the network but is never stored persistently or shared with third parties. It is used exclusively to process your request and -formulate a response. +formulate a response. For more information about privacy terms and conditions +for Docker AI, review [Gordon's Supplemental Terms](https://www.docker.com/legal/docker-ai-supplemental-terms/). All data transferred is encrypted in transit. @@ -90,16 +85,12 @@ If you have concerns about data collection or usage, you can To use this feature, you must have: -- [Access to the Ask Gordon beta program](https://docker.qualtrics.com/jfe/form/SV_dmVHFjQ4fZlrEOy). - -- Docker Desktop version 4.37 or later. +- Docker Desktop version 4.38 or later. -Ask Gordon is not enabled by default. After having received access to the beta -program, you must enable the feature: +Ask Gordon is not enabled by default. To enable the feature: 1. [Sign in](#sign-in) to your Docker account. 2. [Enable the feature](#enable-the-feature) in the Docker Desktop settings. -3. [Accept the terms of service](#accept-the-terms-of-service). ### Sign in @@ -114,26 +105,11 @@ After signing in to your Docker Account, enable the Docker AI feature: 1. Open the **Settings** view in Docker Desktop. 2. Navigate to **Features in development**. 3. Check the **Enable Docker AI** checkbox. -4. Select **Apply & restart**. - -### Accept the terms of service - -To start using Docker AI, you need to accept the terms of service. You can do -this in one of two ways: - -- Open the **Ask Gordon** view in Docker Desktop and ask a question. -- Use the `docker ai` CLI command to issue a query. -The first time you interact with Docker AI, you'll see a prompt to accept the -terms of service. For example: + The Docker AI terms of service agreement is displayed. You must agree to the + terms before you can enable the feature. Review the terms and select **Accept and enable** to continue. -```console -$ docker ai what can you do? - - Before using Gordon, please accept the terms of service -``` - -After accepting the terms, you can begin using Ask Gordon. +4. Select **Apply & restart**. ## Using Ask Gordon diff --git a/data/summary.yaml b/data/summary.yaml index 9fdc5b9a4863..290e1d6d6498 100644 --- a/data/summary.yaml +++ b/data/summary.yaml @@ -16,6 +16,7 @@ Amazon S3 cache: availability: Experimental Ask Gordon: availability: Beta + requires: Docker Desktop 4.38 or later Automated builds: subscription: [Pro, Team, Business] Azure blob: @@ -191,4 +192,4 @@ VMM: Wasm workloads: availability: Beta Wasmtime: - availability: Experimental \ No newline at end of file + availability: Experimental