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.21.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.6 | 18.02.0+ |
| 3.3 – 3.5 | 17.06.0+ |
| 3.0 – 3.2 | 1.13.0+ |
| 2.4 | 17.12.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 2.4 of the docker-compose.yml specification.
This version requires Docker Engine 17.12.0 or above.
Added support for the platform parameter in service definitions.
If supplied, the parameter is also used when performing build for the
service.
cpu_rt_period and cpu_rt_runtime parameters
in service definitions (2.x only).Added support for the cpu_period parameter in service definitions
(2.x only).
Added support for the isolation parameter in service build configurations.
Additionally, the isolation parameter is used for builds as well if no
build.isolation parameter is defined. (2.x only)
Added support for the --workdir flag in docker-compose exec.
Added support for the --compress flag in docker-compose build.
docker-compose pull is now performed in parallel by default. You can
opt out using the --no-parallel flag. The --parallel flag is now
deprecated and will be removed in a future version.
Dashes and underscores in project names are no longer stripped out.
docker-compose build now supports the use of Dockerfile from outside
the build context.
Compose now checks that the volume's configuration matches the remote volume, and errors out if a mismatch is detected.
Fixed a bug that caused Compose to raise unexpected errors when attempting to create several one-off containers in parallel.
Fixed a bug with argument parsing when using docker-machine config to
generate TLS flags for exec and run commands.
Fixed a bug where variable substitution with an empty default value
(e.g. ${VAR:-}) would print an incorrect warning.
Improved resilience when encoding of the Compose file doesn't match the system's. Users are encouraged to use UTF-8 when possible.
Fixed a bug where external overlay networks in Swarm would be incorrectly recognized as inexistent by Compose, interrupting otherwise valid operations.
Thanks to @mnottale, @g0t4, @dnephin, @dakotahawkins, @brainlock and @albers for contributing to this release!
| SHA-256 sum | Binary name |
|---|---|
6cadd64afbd1606e1517b91df591a0104c882a2343865aaa9c7ad9dcae81faf5 | docker-compose-Darwin-x86_64 |
af639f5e9ca229442c8738135b5015450d56e2c1ae07c0aaa93b7da9fe09c2b0 | docker-compose-Linux-x86_64 |
f0d52f0323727a9a6a68fa2739bf3c033e64a2d18437d7b31766d7e2e034131e | docker-compose-Windows-x86_64.exe |
Fetched March 31, 2026