Compose v2 guide [ENGDOCS-1319] (#17209)

* initial content

* edits

* fix links

* compose: bunch of changes/additions around migration

* Apply suggestions from code review

Co-authored-by: Allie Sadler <102604716+aevesdocker@users.noreply.github.com>

* review feedback & link fixes

* fix another link

* update TOC page title to match

* move redirect to migrate page

* update v1 eol blurb

* fix eol warning style

---------

Co-authored-by: Allie Sadler <102604716+aevesdocker@users.noreply.github.com>
This commit is contained in:
Milas Bowman 2023-05-10 03:42:35 -04:00 committed by GitHub
parent 2ac3d45c3e
commit a62805e3eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 218 additions and 199 deletions

View File

@ -1766,18 +1766,20 @@ manuals:
title: Overview
- path: /compose/features-uses/
title: Key features and use cases
- path: /compose/compose-v2/
title: Evolution of Compose
- path: /compose/history/
title: History of Compose
- sectiontitle: Install Docker Compose
section:
- path: /compose/install/
title: Overview
- path: /compose/install/linux/
title: Install the Compose plugin
- path: /compose/install/other/
title: Install the Compose standalone
title: Install Compose plugin
- path: /compose/install/standalone/
title: Install Compose standalone
- path: /compose/install/uninstall/
title: Uninstall Compose
- path: /compose/migrate/
title: Migrate to Compose V2
- path: /compose/gettingstarted/
title: Try Docker Compose

View File

@ -1,6 +1,7 @@
> **Important**
>
> From the end of June 2023 Compose V1 won't be supported anymore and will be removed from all Docker Desktop versions.
> Compose V1 no longer receives updates and will not be available in new releases of Docker Desktop after June 2023.
>
> Make sure you switch to [Compose V2](/compose/compose-file/) with the `docker compose` CLI plugin or by activating the **Use Docker Compose V2** setting in Docker Desktop. For more information, see the [Evolution of Compose](/compose/compose-v2/).
{: .important}
> Compose V2 is included with all currently supported versions of Docker Desktop.
> For more information, see [Migrate to Compose V2](/compose/migrate).
{: .important}

View File

@ -105,7 +105,7 @@
- /go/deprecated/
"/engine/reference/commandline/cli/#experimental-features":
- /go/experimental/
"/compose/compose-v2/":
"/compose/migrate/":
- /go/compose-v1-eol/
"/config/formatting/":
# Instructions on using Go templates to format CLI output with --format

View File

@ -12,7 +12,7 @@ title: Compose file versions and upgrading
>The latest and recommended version of Compose is the [Compose Specification](index.md).
>Make sure you switch to [Compose V2](/compose/compose-file/) with the `docker compose` CLI plugin or by activating the **Use Docker Compose V2** setting in Docker Desktop.
>
> For more information, see the [Evolution of Compose](/compose/compose-v2/).
> For more information, see the [History of Compose](/compose/history/).
{: .warning}
The Compose file is a [YAML](https://yaml.org) file defining services,
@ -548,5 +548,3 @@ It's more complicated if you're using particular configuration features:
volumes:
data:
external: true

View File

@ -1,165 +0,0 @@
---
description: Key features and use cases of Docker Compose
keywords: documentation, docs, docker, compose, orchestration, containers, uses, features
title: Evolution of Compose
redirect_from:
- /compose/cli-command-compatibility/
---
{% include compose-eol.md %}
This page provides information on the history of Compose and explains the key differences between Compose V1 and Compose V2.
## History
The first release of Compose, written in Python, happened at the end of 2014.
Between 2014 and 2017 two other noticeable versions of Compose, which introduced new file format versions, were released:
- [Compose 1.6.0 with file format V2](../compose-file/compose-file-v2/)
- [Compose 1.10.0 with file format V3](../compose-file/compose-file-v3/)
These three key file format versions and releases prior to v1.29.2 are collectively referred to as Compose V1.
In mid-2020 Compose V2 was released. It merged Compose file format V2 and V3 and was written in Go. The file format is defined by the [Compose specification](https://github.com/compose-spec/compose-spec){:target="_blank" rel="noopener" class="_"}. Compose V2 is the latest and recommended version of Compose and is compatible with Docker Engine version 19.03.0 and later. It provides improved integration with other Docker command-line features, and simplified installation on macOS, Windows, and Linux.
It makes a clean distinction between the Compose YAML file model and the `docker-compose`
implementation. Making this change has enabled a number of enhancements, including
adding the `compose` command directly into the Docker CLI, being able to "up" a
Compose application on cloud platforms by simply switching the Docker context,
and launching of [Amazon ECS](../../cloud/ecs-integration.md) and [Microsoft ACI](../../cloud/aci-integration.md).
As the Compose specification evolves, new features land faster in the Docker CLI.
> **A note about version numbers**
>
>In addition to Compose file format versions described above, the Compose binary itself is on a release schedule, as shown in [Compose releases](https://github.com/docker/compose/releases/). File format versions do not necessarily increment with each release. For example, Compose file format V3 was first introduced in Compose release 1.10.0, and versioned gradually in subsequent releases.
>
>The latest Compose file format, defined by the Compose Specification, was implemented by Docker Compose 1.27.0+.
## Differences between Compose V1 and Compose V2
Compose V2 integrates compose functions into the Docker platform, continuing to support most of the previous `docker-compose` features and flags. You can run Compose V2 by replacing the hyphen (`-`) with a space, using `docker compose`, instead of `docker-compose`.
The `compose` command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`.
If you see any Compose functionality that is not available in the `compose` command, create an issue in the [Compose](https://github.com/docker/compose/issues){:target="_blank" rel="noopener" class="_"} GitHub repository, so we can prioritize it.
Compose V2 relies directly on the compose-go bindings which are maintained as part
of the specification. This allows us to include community proposals, experimental
implementations by the Docker CLI and/or Engine, and deliver features faster to
users.
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" data-target="#tab1">Commands not yet implemented</a></li>
<li><a data-toggle="tab" data-target="#tab2">Flags not be implemented</a></li>
<li><a data-toggle="tab" data-target="#tab3">New commands in Compose v2</a></li>
</ul>
<div class="tab-content">
<div id="tab1" class="tab-pane fade in active" markdown="1">
The following commands have not been implemented yet, and may be implemented at a later time.
Let us know if these commands are a higher priority for your use cases.
`compose build --memory`: This option is not yet supported by BuildKit. The flag is currently supported, but is hidden to avoid breaking existing Compose usage. It does not have any effect.
<hr>
</div>
<div id="tab2" class="tab-pane fade" markdown="1">
The list below includes the flags that we are not planning to support in Compose in the Docker CLI,
either because they are already deprecated in `docker-compose`, or because they are not relevant for Compose in the Docker CLI.
* `compose ps --filter KEY-VALUE` Not relevant due to its complicated usage with the `service` command and also because it is not documented properly in `docker-compose`.
* `compose rm --all` Deprecated in docker-compose.
* `compose scale` Deprecated in docker-compose (use `compose up --scale` instead)
Global flags:
* `--compatibility` has been resignified Docker Compose V2. This now means that in the command running V2 will behave as V1 used to do.
* One difference is in the word separator on container names. V1 used to use `_` as separator while V2 uses `-` to keep the names more hostname friendly. So when using `--compatibility` Docker
Compose should use `_` again. Just make sure to stick to one of them otherwise Docker Compose will not be able to recognize the container as an instance of the service.
<hr>
</div>
<div id="tab3" class="tab-pane fade" markdown="1">
#### Copy
The `cp` command is intended to copy files or folders between service containers and the local filesystem.
This command is a bidirectional command, we can copy **from** or **to** the service containers.
Copy a file from a service container to the local filesystem:
```console
$ docker compose cp my-service:~/path/to/myfile ~/local/path/to/copied/file
```
We can also copy from the local filesystem to all the running containers of a service:
```console
$ docker compose cp --all ~/local/path/to/source/file my-service:~/path/to/copied/file
```
#### List
The ls command is intended to list the Compose projects. By default, the command only lists the running projects,
we can use flags to display the stopped projects, to filter by conditions and change the output to `json` format for example.
```console
$ docker compose ls --all --format json
[{"Name":"dockergithubio","Status":"exited(1)","ConfigFiles":"/path/to/docs/docker-compose.yml"}]
```
### Use `--project-name` with Compose commands
With the GA version of Compose, you can run some commands:
- outside of directory containing the project compose file
- or without specifying the path of the Compose with the `--file` flag
- or without specifying the project directory with the `--project-directory` flag
When a compose project has been loaded once, we can just use the `-p` or `--project-name` to reference it:
```console
$ docker compose -p my-loaded-project restart my-service
```
This option works with the `start`, `stop`, `restart` and `down` commands.
### Config command
The config command is intended to show the configuration used by Docker Compose to run the actual project after normalization and templating. The resulting output might contain superficial differences in formattting and style.
For example, some fields in the Compose Specification support both short and a long format so the output structure might not match the input structure but is guaranteed to be semantically equivalent.
Similarly, comments in the source file are not preserved.
In the example below we can see the config command expanding the `ports` section:
docker-compose.yml:
```yaml
services:
web:
# default to latest but allow overriding the tag
image: nginx:${TAG-latest}
ports:
- 80:80
```
With `$ docker compose config` the output turns into:
```yaml
name: docs-example
services:
web:
image: nginx:stable-alpine
networks:
default: null
ports:
- mode: ingress
target: 80
published: "80"
protocol: tcp
networks:
default:
name: basic_default
```
The result above is a full size configuration of what will be used by Docker Compose to run the project.
<hr>
</div>
</div>

View File

@ -120,9 +120,10 @@ When enabled, Compose doesn't try to detect orphaned containers for the project.
Specifies the maximum level of parallelism for concurrent engine calls.
## Deprecated in Compose v2
## Unsupported in Compose V2
The pre-definded environment variables listed below are deprecated in [V2](../compose-v2/index.md).
The environment variables listed below have no effect in Compose V2.
For more information, see [Migrate to Compose V2](../migrate.md).
- `COMPOSE_API_VERSION`
By default the API version is negotiated with the server. Use `DOCKER_API_VERSION`.

View File

@ -8,7 +8,7 @@ title: Enabling GPU access with Compose
Compose services can define GPU device reservations if the Docker host contains such devices and the Docker Daemon is set accordingly. For this, make sure you install the [prerequisites](../config/containers/resource_constraints.md#gpu){: target="_blank" rel="noopener" class="_" } if you have not already done so.
The examples in the following sections focus specifically on providing service containers access to GPU devices with Docker Compose.
You can use either `docker-compose` or `docker compose` commands. For more information, see [Evolution of Compose](compose-v2/index.md){: target="_blank" rel="noopener" class="_" }.
You can use either `docker-compose` or `docker compose` commands. For more information, see [Migrate to Compose V2](migrate.md){: target="_blank" rel="noopener" class="_" }.
### Enabling GPU access to service containers

45
compose/history.md Normal file
View File

@ -0,0 +1,45 @@
---
title: History of Compose
description: History of Compose V1 and Compose YAML schema versioning
keywords: compose, compose yaml, swarm, migration, compatibility
---
{% include compose-eol.md %}
This page provides a brief history of the major versions and file format revisions of Docker Compose.
The currently supported version of Compose is V2, which uses YAML files as defined by the [Compose specification](https://github.com/compose-spec/compose-spec){:
target="_blank" rel="noopener" class="_"}.
For users supporting projects originally targeting older versions of Compose, this can serve as a guide to understanding compatibility and the evolution of changes.
## Docker Compose CLI versioning
There are two major versions of Docker Compose, i.e. the command-line binary.
Compose V1 was first released in 2014, is written in Python, and is invoked as `docker-compose`.
Typically, Compose V1 projects include a `version` field in YAML with values ranging from `2.0` to `3.8`.
Compose V2 was announced in 2020, is written in Go, and is invoked as `docker compose`.
Compose V2 ignores the `version` field in YAML.
## Compose file format versioning
With Compose V1, projects declared a Compose file format version in YAML.
Three major versions of the Compose file format for Compose V1 were released:
- [Compose file format 1](/compose/compose-file/compose-versioning/#version-1-to-2x) with Compose 1.0.0 in 2014
- [Compose file format 2.x](../compose-file/compose-file-v2/) with Compose 1.6.0 in 2016
- [Compose file format 3.x](../compose-file/compose-file-v3/) with Compose 1.10.0 in 2017
Compose file format 1 was substantially different than all following formats, lacking a top-level `services` key.
Its usage is historical and files written in this format don't run with Compose V2.
Compose file format 2.x and 3.x were very similar to each other, but the latter introduced many new options targeted at Swarm deployments.
To address confusion around Compose CLI versioning, Compose file format versioning, and feature parity depending on whether Swarm mode was in use, file format 2.x and 3.x were merged into the [Compose specification](https://github.com/compose-spec/compose-spec){:target="_blank" rel="noopener" class="_"}.
Unlike the prior file formats, the Compose specification is rolling and eliminates the `version` field in YAML.
Compose V2 uses the Compose specification for project definition.
The `version` field should be omitted and is ignored if present.
To make migration easier, Compose V2 has backwards compatibility for certain elements that have been deprecated or changed between Compose file format 2.x/3.x and the Compose specification.
In these cases, a warning is logged when running Compose V2 commands, and you should update your YAML accordingly.
Future versions of Compose may return an error in these cases.

View File

@ -37,9 +37,9 @@ If you already have Docker Engine and Docker CLI installed, you can install the
### Scenario three: Install the Compose standalone
You can [install the Compose standalone](other.md) on Linux or on Windows Server.
You can [install the Compose standalone](standalone.md) on Linux or on Windows Server.
>Note
>
>This install scenario is not recommended and is only supported for backward compatibility purposes.
{: .important}
{: .important}

View File

@ -18,7 +18,7 @@ To install the Compose plugin on Linux, you can either:
> **Note**
>
> These instructions assume you already have Docker Engine and Docker CLI installed and now want to install the Compose plugin.
For Compose standalone, see [Install Compose Standalone](other.md).
For Compose standalone, see [Install Compose Standalone](standalone.md).
## Install using the repository

View File

@ -1,12 +1,14 @@
---
title: Install Compose standalone
description: How to install Docker Compose - Other Scenarios
keywords: compose, orchestration, install, installation, docker, documentation
toc_max: 3
title: Install the Compose standalone
redirect_from:
- /compose/install/other
---
{% include compose-eol.md %}
On this page you can find instructions on how to install the Compose standalone on Linux or Windows Server, from the command line.
On this page you can find instructions on how to install Compose standalone on Linux or Windows Server, from the command line.
### On Linux
> **Compose standalone**
@ -36,7 +38,7 @@ Follow these instructions if you are running the Docker daemon and client direct
on Microsoft Windows Server and want to install Docker Compose.
1. Run PowerShell as an administrator.
When asked if you want to allow this app to make changes to your device, click **Yes** in order to proceed with the installation.
When asked if you want to allow this app to make changes to your device, click **Yes** in order to proceed with the installation.
2. GitHub now requires TLS1.2. In PowerShell, run the following:
@ -46,7 +48,7 @@ When asked if you want to allow this app to make changes to your device, click *
3. Run the following command to download the latest release of Compose ({{site.compose_version}}):
```powershell
Start-BitsTransfer -Source "https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-Windows-x86_64.exe" -Destination $Env:ProgramFiles\Docker\docker-compose.exe
Start-BitsTransfer -Source "https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-windows-x86_64.exe" -Destination $Env:ProgramFiles\Docker\docker-compose.exe
```
> **Note**
@ -61,6 +63,6 @@ When asked if you want to allow this app to make changes to your device, click *
4. Test the installation.
```console
$ docker compose version
$ docker-compose.exe version
Docker Compose version {{site.compose_version}}
```
```

135
compose/migrate.md Normal file
View File

@ -0,0 +1,135 @@
---
title: Migrate to Compose V2
description: How to migrate from Compose V1 to V2
keywords: compose, upgrade, migration, v1, v2
redirect_from:
- /compose/compose-v2/
- /compose/cli-command-compatibility/
---
{% include compose-eol.md %}
## What are the functional differences between Compose V1 and Compose V2?
Compose V2 introduces a new internal architecture integrated with the rest of the Docker platform.
It offers an improved CLI experience, improved build performance with BuildKit, and continued new-feature development.
For most projects, switching to Compose V2 requires no changes to the Compose YAML or your development workflow.
### `docker-compose` vs `docker compose`
Unlike Compose V1, Compose V2 integrates into the Docker CLI platform and the recommended command-line syntax is `docker compose`.
The Docker CLI platform provides a consistent and predictable set of options and flags, such as the `DOCKER_HOST` environment variable or the `--context` command-line flag.
This change enables using all of the shared flags on the root `docker` command.
For example, `docker --log-level=debug --tls compose up` enables debug logging from the Docker Engine as well as ensures that TLS is used for the connection.
Update scripts to use Compose V2 by replacing the hyphen (`-`) with a space, using `docker compose` instead of `docker-compose`.
### Service container names
Compose generates container names based on the project name, service name, and scale/replica count.
In Compose V1, an underscore (`_`) was used as the word separator.
In Compose V2, a hyphen (`-`) is used as the word separator.
Underscores are not valid characters in DNS hostnames.
By using a hyphen instead, Compose V2 ensures service containers can be accessed over the network via consistent, predictable hostnames.
For example, running the Compose command `-p myproject up --scale=1 svc` results in a container named `myproject_svc_1` with Compose V1 and a container named `myproject-svc-1` with Compose V2.
In Compose V2, the global `--compatibility` flag or `COMPOSE_COMPATIBILITY` environment variable preserves the Compose V1 behavior to use underscores (`_`) as the word separator.
As this option must be specified for _every_ Compose V2 command run, we recommend only using this as a temporary measure while transitioning to Compose V2.
### Command-line flags and subcommands
Compose V2 still supports almost all Compose V1 flags and subcommands, so in most cases, it can be used as a drop-in replacement in scripts.
#### Unsupported in V2
The following were deprecated in Compose V1 and are not supported in Compose V2:
* `docker-compose scale` (use `docker compose up --scale` instead)
* `docker-compose rm --all`
#### Different in V2
The following behave differently between Compose V1 and V2:
| | Compose V1 | Compose V2 |
|-------------------------|------------------------------------------------------------------|-------------------------------------------------------------------------------|
| `--compatibility` | Deprecated. Migrates YAML fields based on legacy schema version. | Uses `_` as word separator for container names instead of `-` to match V1. |
| `ps --filter KEY-VALUE` | Undocumented. Allows filtering by arbitrary service properties. | Only allows filtering by specific properties, e.g. `--filter=status=running`. |
### Environment variables
Environment variable behavior in Compose V1 was not formally documented and behaved inconsistently in some edge cases.
For Compose V2, the [Environment variables](/compose/environment-variables/) section covers both [precedence](/compose/environment-variables/envvars-precedence) as well as [`.env` file interpolation](/compose/environment-variables/env-file) and includes numerous examples covering tricky situations such as escaping nested quotes.
Ask yourself...
- Is my project using multiple levels of environment variable overrides (e.g. `.env` file and `--env` CLI flags)?
- Do any `.env` file values have escape sequences or nested quotes?
- Do any `.env` file values contain literal `$` signs in them? (This is common with PHP projects!)
- Do any variable values use advanced expansion syntax? (e.g. `${VAR:?error}`)
Run `docker compose config` on the project to preview the configuration after Compose V2 has performed interpolation to
verify that values appear as expected.
Maintaining backwards compatibility with Compose V1 is typically achievable by ensuring that literal values (no
interpolation) are single-quoted and values that should have interpolation applied are double-quoted.
## What does this mean for my projects that use Compose V1?
For most projects, switching to Compose V2 requires no changes to the Compose YAML or your development workflow.
We recommend that you adapt to the new preferred way of running Compose V2, which is to use `docker compose` instead of `docker-compose`.
This provides additional flexibility and removes the requirement for a `docker-compose` compatibility alias.
However, Docker Desktop will continue to support a `docker-compose` alias to redirect commands to `docker compose` for convenience and improved compatibility with third-party tools and scripts.
## How do I upgrade?
The easiest and recommended way to switch to Compose V2 is to make sure you have the latest version of [Docker Desktop](../desktop/release-notes.md), which bundles the Docker Engine and Docker CLI platform including Compose V2.
With Docker Desktop, Compose V2 is always accessible as `docker compose`.
Additionally, the **Use Compose V2** option is enabled by default, which provides an alias from `docker-compose`.
For manual installs on Linux, you can get Compose V2 by either:
- [Using Docker's repository](install/linux.md#install-using-the-repository) (recommended)
- [Downloading and installing manually](install/linux.md#install-the-plugin-manually)
## Is there anything else I need to know before I upgrade?
### Migrating running projects
In both V1 and V2, running `up` on a Compose project recreates service containers as necessary to reach the desired state based on comparing the actual state in the Docker Engine to the resolved project configuration including Compose YAML, environment variables, and command-line flags.
Because Compose V1 and V2 [name service containers differently](#service-container-names), running `up` using V2 the first time on a project with running services originally launched by V1 will result in service containers being recreated with updated names.
Note that even if `--compatibility` flag is used to preserve the V1 naming style, Compose still needs to recreate service containers originally launched by V1 the first time `up` is run by V2 to migrate internal state.
### Using Compose V2 with Docker-in-Docker
Compose V2 is now included in the [Docker official image on Docker Hub](https://hub.docker.com/_/docker){:
target="_blank" rel="noopener" class="_"}.
Additionally, a new [docker/compose-bin image on Docker Hub](https://hub.docker.com/r/docker/compose-bin){:
target="_blank" rel="noopener" class="_"} packages the latest version of Compose V2 for use in multi-stage builds.
## Will I still be able to use Compose V1 if I really want to?
Yes. You can still download and install Compose V1 packages, but you won't get support from Docker if anything breaks.
>**Warning**
>
> The final Compose v1 release (v1.29.2) was May 10, 2021. These packages haven't received any security updates since then. Use at your own risk.
{: .warning}
### Additional Resources
- [docker-compose V1 on PyPI](https://pypi.org/project/docker-compose/1.29.2/){:
target="_blank" rel="noopener" class="_"}
- [docker/compose V1 on Docker Hub](https://hub.docker.com/r/docker/compose){:
target="_blank" rel="noopener" class="_"}
- [docker-compose V1 source on GitHub](https://github.com/docker/compose/releases/tag/1.29.2){:
target="_blank" rel="noopener" class="_"}

View File

@ -99,7 +99,7 @@ This page contains release notes for Docker Desktop for Mac 3.x.
**Dev Environments Preview**: Dev Environments enable you to seamlessly collaborate with your team members without moving between Git branches to get your code onto your team members' machines. When using Dev Environments, you can share your in-progress work with your team members in just one click, and without having to deal with any merge conflicts. For more information and for instructions on how to use Dev Environments, see [Development Environments Preview](../dev-environments/index.md).
**Compose V2 beta**: Docker Desktop now includes the beta version of Compose V2, which supports the `docker compose` command as part of the Docker CLI. While `docker-compose` is still supported and maintained, Compose V2 implementation relies directly on the compose-go bindings which are maintained as part of the specification. The compose command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`. There are a few remaining flags that have yet to be implemented, see the [docker-compose compatibility list](../../compose/compose-v2/index.md) for more information about the flags that are supported in the new compose command. If you run into any problems with Compose V2, you can easily switch back to Compose v1 by either by making changes in Docker Desktop **Experimental** Settings, or by running the command `docker-compose disable-v2`. Let us know your feedback on the new compose command by creating an issue in the [Compose-CLI](https://github.com/docker/compose-cli/issues) GitHub repository.
**Compose V2 beta**: Docker Desktop now includes the beta version of Compose V2, which supports the `docker compose` command as part of the Docker CLI. While `docker-compose` is still supported and maintained, Compose V2 implementation relies directly on the compose-go bindings which are maintained as part of the specification. The compose command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`. There are a few remaining flags that have yet to be implemented, see the [docker-compose compatibility list](../../compose/migrate.md) for more information about the flags that are supported in the new compose command. If you run into any problems with Compose V2, you can easily switch back to Compose v1 by either by making changes in Docker Desktop **Experimental** Settings, or by running the command `docker-compose disable-v2`. Let us know your feedback on the new compose command by creating an issue in the [Compose-CLI](https://github.com/docker/compose-cli/issues) GitHub repository.
### Bug fixes and minor changes
@ -119,7 +119,7 @@ This page contains release notes for Docker Desktop for Mac 3.x.
**Dev Environments Preview**: Dev Environments enable you to seamlessly collaborate with your team members without moving between Git branches to get your code onto your team members' machines. When using Dev Environments, you can share your in-progress work with your team members in just one click, and without having to deal with any merge conflicts. For more information and for instructions on how to use Dev Environments, see [Development Environments Preview](../dev-environments/index.md).
**Compose V2 beta**: Docker Desktop now includes the beta version of Compose V2, which supports the `docker compose` command as part of the Docker CLI. While `docker-compose` is still supported and maintained, Compose V2 implementation relies directly on the compose-go bindings which are maintained as part of the specification. The compose command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`. There are a few remaining flags that have yet to be implemented, see the [docker-compose compatibility list](../../compose/compose-v2/index.md) for more information about the flags that are supported in the new compose command. If you run into any problems with Compose V2, you can easily switch back to Compose v1 by either by making changes in Docker Desktop **Experimental** Settings, or by running the command `docker-compose disable-v2`. Let us know your feedback on the new compose command by creating an issue in the [Compose-CLI](https://github.com/docker/compose-cli/issues) GitHub repository.
**Compose V2 beta**: Docker Desktop now includes the beta version of Compose V2, which supports the `docker compose` command as part of the Docker CLI. While `docker-compose` is still supported and maintained, Compose V2 implementation relies directly on the compose-go bindings which are maintained as part of the specification. The compose command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`. There are a few remaining flags that have yet to be implemented, see the [docker-compose compatibility list](../../compose/migrate.md) for more information about the flags that are supported in the new compose command. If you run into any problems with Compose V2, you can easily switch back to Compose v1 by either by making changes in Docker Desktop **Experimental** Settings, or by running the command `docker-compose disable-v2`. Let us know your feedback on the new compose command by creating an issue in the [Compose-CLI](https://github.com/docker/compose-cli/issues) GitHub repository.
### Upgrades
@ -158,7 +158,7 @@ This page contains release notes for Docker Desktop for Mac 3.x.
**Volume Management**: Docker Desktop users can now create and delete volumes using the Docker Dashboard and also see which volumes are being used. For more information, see [Explore volumes](../use-desktop/volumes.md).
**Compose V2 beta**: Docker Desktop now includes the beta version of Compose V2, which supports the `docker compose` command as part of the Docker CLI. While `docker-compose` is still supported and maintained, Compose V2 implementation relies directly on the compose-go bindings which are maintained as part of the specification. The compose command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`. There are a few remaining flags that have yet to be implemented, see the [docker-compose compatibility list](../../compose/compose-v2/index.md) for more information about the flags that are supported in the new compose command. If you run into any problems with Compose V2, you can easily switch back to Compose v1 by either by making changes in Docker Desktop **Experimental** Settings, or by running the command `docker-compose disable-v2`. Let us know your feedback on the new compose command by creating an issue in the [Compose-CLI](https://github.com/docker/compose-cli/issues) GitHub repository.
**Compose V2 beta**: Docker Desktop now includes the beta version of Compose V2, which supports the `docker compose` command as part of the Docker CLI. While `docker-compose` is still supported and maintained, Compose V2 implementation relies directly on the compose-go bindings which are maintained as part of the specification. The compose command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`. There are a few remaining flags that have yet to be implemented, see the [docker-compose compatibility list](../../compose/migrate.md) for more information about the flags that are supported in the new compose command. If you run into any problems with Compose V2, you can easily switch back to Compose v1 by either by making changes in Docker Desktop **Experimental** Settings, or by running the command `docker-compose disable-v2`. Let us know your feedback on the new compose command by creating an issue in the [Compose-CLI](https://github.com/docker/compose-cli/issues) GitHub repository.
**Skip Docker Desktop updates**: All users can now skip an update when they are prompted to install individual Docker Desktop releases.

View File

@ -103,7 +103,7 @@ This page contains release notes for Docker Desktop for Windows 3.x.
**Dev Environments Preview**: Dev Environments enable you to seamlessly collaborate with your team members without moving between Git branches to get your code onto your team members' machines. When using Dev Environments, you can share your in-progress work with your team members in just one click, and without having to deal with any merge conflicts. For more information and for instructions on how to use Dev Environments, see [Development Environments Preview](../dev-environments/index.md).
**Compose V2 beta**: Docker Desktop now includes the beta version of Compose V2, which supports the `docker compose` command as part of the Docker CLI. While `docker-compose` is still supported and maintained, Compose V2 implementation relies directly on the compose-go bindings which are maintained as part of the specification. The compose command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`. There are a few remaining flags that have yet to be implemented, see the [docker-compose compatibility list](../../compose/compose-v2/index.md) for more information about the flags that are supported in the new compose command. If you run into any problems with Compose V2, you can easily switch back to Compose v1 by either by making changes in Docker Desktop **Experimental** Settings, or by running the command `docker-compose disable-v2`. Let us know your feedback on the new compose command by creating an issue in the [Compose-CLI](https://github.com/docker/compose-cli/issues) GitHub repository.
**Compose V2 beta**: Docker Desktop now includes the beta version of Compose V2, which supports the `docker compose` command as part of the Docker CLI. While `docker-compose` is still supported and maintained, Compose V2 implementation relies directly on the compose-go bindings which are maintained as part of the specification. The compose command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`. There are a few remaining flags that have yet to be implemented, see the [docker-compose compatibility list](../../compose/migrate.md) for more information about the flags that are supported in the new compose command. If you run into any problems with Compose V2, you can easily switch back to Compose v1 by either by making changes in Docker Desktop **Experimental** Settings, or by running the command `docker-compose disable-v2`. Let us know your feedback on the new compose command by creating an issue in the [Compose-CLI](https://github.com/docker/compose-cli/issues) GitHub repository.
### Bug fixes and minor changes
@ -123,7 +123,7 @@ This page contains release notes for Docker Desktop for Windows 3.x.
**Dev Environments Preview**: Dev Environments enable you to seamlessly collaborate with your team members without moving between Git branches to get your code onto your team members' machines. When using Dev Environments, you can share your in-progress work with your team members in just one click, and without having to deal with any merge conflicts. For more information and for instructions on how to use Dev Environments, see [Development Environments Preview](../dev-environments/index.md).
**Compose V2 beta**: Docker Desktop now includes the beta version of Compose V2, which supports the `docker compose` command as part of the Docker CLI. While `docker-compose` is still supported and maintained, Compose V2 implementation relies directly on the compose-go bindings which are maintained as part of the specification. The compose command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`. There are a few remaining flags that have yet to be implemented, see the [docker-compose compatibility list](../../compose/compose-v2/index.md) for more information about the flags that are supported in the new compose command. If you run into any problems with Compose V2, you can easily switch back to Compose v1 by either by making changes in Docker Desktop **Experimental** Settings, or by running the command `docker-compose disable-v2`. Let us know your feedback on the new compose command by creating an issue in the [Compose-CLI](https://github.com/docker/compose-cli/issues) GitHub repository.
**Compose V2 beta**: Docker Desktop now includes the beta version of Compose V2, which supports the `docker compose` command as part of the Docker CLI. While `docker-compose` is still supported and maintained, Compose V2 implementation relies directly on the compose-go bindings which are maintained as part of the specification. The compose command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`. There are a few remaining flags that have yet to be implemented, see the [docker-compose compatibility list](../../compose/migrate.md) for more information about the flags that are supported in the new compose command. If you run into any problems with Compose V2, you can easily switch back to Compose v1 by either by making changes in Docker Desktop **Experimental** Settings, or by running the command `docker-compose disable-v2`. Let us know your feedback on the new compose command by creating an issue in the [Compose-CLI](https://github.com/docker/compose-cli/issues) GitHub repository.
### Upgrades
@ -160,7 +160,7 @@ This page contains release notes for Docker Desktop for Windows 3.x.
**Volume Management**: Docker Desktop users can now create and delete volumes using the Docker Dashboard and also see which volumes are being used. For more information, see [Explore volumes](../use-desktop/volumes.md).
**Compose V2 beta**: Docker Desktop now includes the beta version of Compose V2, which supports the `docker compose` command as part of the Docker CLI. While `docker-compose` is still supported and maintained, Compose V2 implementation relies directly on the compose-go bindings which are maintained as part of the specification. The compose command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`. There are a few remaining flags that have yet to be implemented, see the [docker-compose compatibility list](../../compose/compose-v2/index.md) for more information about the flags that are supported in the new compose command. If you run into any problems with Compose V2, you can easily switch back to Compose v1 by either by making changes in Docker Desktop **Experimental** Settings, or by running the command `docker-compose disable-v2`. Let us know your feedback on the new compose command by creating an issue in the [Compose-CLI](https://github.com/docker/compose-cli/issues) GitHub repository.
**Compose V2 beta**: Docker Desktop now includes the beta version of Compose V2, which supports the `docker compose` command as part of the Docker CLI. While `docker-compose` is still supported and maintained, Compose V2 implementation relies directly on the compose-go bindings which are maintained as part of the specification. The compose command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`. There are a few remaining flags that have yet to be implemented, see the [docker-compose compatibility list](../../compose/migrate.md) for more information about the flags that are supported in the new compose command. If you run into any problems with Compose V2, you can easily switch back to Compose v1 by either by making changes in Docker Desktop **Experimental** Settings, or by running the command `docker-compose disable-v2`. Let us know your feedback on the new compose command by creating an issue in the [Compose-CLI](https://github.com/docker/compose-cli/issues) GitHub repository.
**Skip Docker Desktop updates**: All users can now skip an update when they are prompted to install individual Docker Desktop releases.

View File

@ -60,7 +60,7 @@ For frequently asked questions about Docker Desktop releases, see [FAQs](faqs/ge
- Added more details to dashboard errors when a `docker-compose` action fails ([docker/for-win#13378](https://github.com/docker/for-win/issues/13378)).
- Added support for setting HTTP proxy configuration during installation. This can be done via the `--proxy-http-mode`, `--overrider-proxy-http`, `--override-proxy-https` and `--override-proxy-exclude` installer flags in the case of installation from the CLI on [Mac](/install/mac-install.md#install-from-the-command-line) and [Windows](/install/windows-install.md#install-from-the-command-line), or alternatively by setting the values in the `install-settings.json` file.
- Docker Desktop now stops overriding .docker/config.json `credsStore` keys on application start. Note that if you use a custom credential helper then the CLI `docker login` and `docker logout` does not affect whether the UI is signed in to Docker or not. In general, it is better to sign into Docker via the UI since the UI supports multi-factor authentication.
- Added a warning about the [forthcoming removal of Compose V1 from Docker Desktop](../compose/compose-v2/index.md). Can be suppressed with `COMPOSE_V1_EOL_SILENT=1`.
- Added a warning about the [forthcoming removal of Compose V1 from Docker Desktop](../compose/migrate.md). Can be suppressed with `COMPOSE_V1_EOL_SILENT=1`.
- In the Compose config, boolean fields in YAML should be either `true` or `false`. Deprecated YAML 1.1 values such as “on” or “no” now produce a warning.
- Improved UI for image table, allowing rows to use more available space.
- Fixed various bugs in port-forwarding.

View File

@ -36,7 +36,7 @@ On the **General** tab, you can configure when to start Docker and specify other
- **Use Enhanced Container Isolation**. Select to enhance security by preventing containers from breaching the Linux VM. For more information, see [Enhanced Container Isolation](../hardened-desktop/enhanced-container-isolation/index.md)
- **Use Docker Compose V2**. Select to enable the `docker-compose` command to
use Docker Compose V2. For more information, see [Docker Compose V2](../../compose/compose-v2/index.md).
use Docker Compose V2. For more information, see [Migrate to Compose V2](../../compose/migrate.md).
## Resources

View File

@ -50,7 +50,7 @@ On the **General** tab, you can configure when to start Docker and specify other
- **Use Enhanced Container Isolation**. Select to enhance security by preventing containers from breaching the Linux VM. For more information, see [Enhanced Container Isolation](../hardened-desktop/enhanced-container-isolation/index.md)
- **Use Docker Compose V2**. Select to enable the `docker-compose` command to
use Docker Compose V2. For more information, see [Docker Compose V2](../../compose/compose-v2/index.md).
use Docker Compose V2. For more information, see [Migrate to Compose V2](../../compose/migrate.md).
## Advanced

View File

@ -48,7 +48,7 @@ On the **General** tab, you can configure when to start Docker and specify other
- **Use Enhanced Container Isolation**. Select to enhance security by preventing containers from breaching the Linux VM. For more information, see [Enhanced Container Isolation](../hardened-desktop/enhanced-container-isolation/index.md)
- **Use Docker Compose V2**. Select to enable the `docker-compose` command to
use Docker Compose V2. For more information, see [Docker Compose V2](../../compose/compose-v2/index.md).
use Docker Compose V2. For more information, see [Migrate to Compose V2](../../compose/migrate.md).
## Resources