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.17.0/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.4 | 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+ |
Introduced version 3.4 of the docker-compose.yml specification.
This version requires to be used with Docker Engine 17.06.0 or above.
Added support for cache_from, network and target options in build
configurations
Added support for the order parameter in the update_config section
Added support for setting a custom name in volume definitions using
the name parameter
shm_size option in build configurationx-*). Also available for v3.4 files--no-start to the up command, allowing users to create all
resources (networks, volumes, containers) without starting services.
The create command is deprecated in favor of this new optionFixed a bug where extra_hosts values would be overridden by extension
files instead of merging together
Fixed a bug where the validation for v3.2 files would prevent using the
consistency field in service volume definitions
Fixed a bug that would cause a crash when configuration fields expecting unique items would contain duplicates
Fixed a bug where mount overrides with a different mode would create a duplicate entry instead of overriding the original entry
Fixed a bug where build labels declared as a list wouldn't be properly parsed
Fixed a bug where the output of docker-compose config would be invalid
for some versions if the file contained custom-named external volumes
Improved error handling when issuing a build command on Windows using an unsupported file version
Fixed an issue where networks with identical names would sometimes be
created when running up commands concurrently.
Thanks to @AlexeyRokhin, @garribas, @FrenchBen, @vdemeester, @NikitaVlaznev, @jbarciauskas, @hoogenm, @edsrzf, @AndreaGiardini, @andrewhsu and @albers for contributing to this release!
| SHA-256 sum | Binary name |
|---|---|
d4530830357dbf6fc6b933b6ffaf8bd28fafdeb5e2a01e8afa8746c55ba97b29 | docker-compose-Darwin-x86_64 |
b553025b82fc61547933f05693716c92967b835979ba9b092b31e50bd35e30c9 | docker-compose-Linux-x86_64 |
35a3365f403dbedb175d6c0f7d971bd497fa64915d44442aa694c732f454ad94 | docker-compose-Windows-x86_64.exe |
Fetched March 31, 2026