If you're a Mac or Windows user, the best way to install Compose and keep it up-to-date is Docker for Mac and Windows.
Docker for Mac and Windows will automatically install the latest version of Docker Engine for you.
Alternatively, you can use the usual commands to install or upgrade Compose:
curl -L https://github.com/docker/compose/releases/download/1.19.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
See the install docs for more install options and instructions.
| Compose file format | Docker Engine |
|---|---|
| 3.3 – 3.5 | 17.06.0+ |
| 3.0 – 3.2 | 1.13.0+ |
| 2.3 | 17.06.0+ |
| 2.2 | 1.13.0+ |
| 2.1 | 1.12.0+ |
| 2.0 | 1.10.0+ |
| 1.0 | 1.9.1+ |
run and exec commands now require
the docker CLI to be installed on the client by default. To revert
to the previous behavior, users may set the COMPOSE_INTERACTIVE_NO_CLI
environment variable.config command should now merge deploy options from
several Compose files in a more accurate mannerruntime option in service definitions${VAR:?err} and ${VAR?err} variable interpolation
syntax to indicate mandatory variablespriority key to service network mappings, allowing the user to
define in which order the specified service will connect to each networkAdded --renew-anon-volumes (shorthand -V) to the up command,
preventing Compose from recovering volume data from previous containers for
anonymous volumes
Added limit for number of simulatenous parallel operations, which should
prevent accidental resource exhaustion of the server. Default is 64 and
can be configured using the COMPOSE_PARALLEL_LIMIT environment variable
Added --always-recreate-deps flag to the up command to force recreating
dependent services along with the dependency owner
Added COMPOSE_IGNORE_ORPHANS environment variable to forgo orphan
container detection and suppress warnings
Added COMPOSE_FORCE_WINDOWS_HOST environment variable to force Compose
to parse volume definitions as if the Docker host was a Windows system,
even if Compose itself is currently running on UNIX
Bash completion should now be able to better differentiate between running, stopped and paused services
Fixed a bug that would cause the build command to report a connection
error when the build context contained unreadable files or FIFO objects.
These file types will now be handled appropriately
Fixed various issues around interactive run/exec sessions.
Fixed a bug where setting TLS options with environment and CLI flags simultaneously would result in part of the configuration being ignored
Fixed a bug where the -d and --timeout flags in up were erroneously
marked as incompatible
Fixed a bug where the recreation of a service would break if the image associated with the previous container had been removed
Fixed a bug where tmpfs volumes declared using the extended syntax in
Compose files using version 3.2 would be erroneously created as anonymous
volumes instead
Fixed a bug where type conversion errors would print a stacktrace instead of exiting gracefully
Fixed some errors related to unicode handling
Dependent services no longer get recreated along with the dependency owner if their configuration hasn't changed
Added better validation of labels fields in Compose files. Label values
containing scalar types (number, boolean) now get automatically converted
to strings
Thanks to @DrewRomanyk, @garribas, @albers, @ilinum, @zaldaroga, @Dahca, @carlwgeorge, @ashmrtn, @tvanro, @thomascrha, @Rozelette, @mtsmfm and @johnharris85 for contributing to this release!
| SHA-256 sum | Binary name |
|---|---|
4ebaa6ef8fd182ee92169e25bb76f721f12331adefebbe44a04c58d1251fed6d | docker-compose-Darwin-x86_64 |
f5a5057f71f6cf44718625381346cce79806e41ad6bfe1f98e76cf4e4c861188 | docker-compose-Linux-x86_64 |
1f2dfdd2502f812034b3d87bde45afc1c768b388977925dfbc9ad87758f8a90e | docker-compose-Windows-x86_64.exe |
Fetched March 31, 2026