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.23.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 |
|---|---|
| 1 | 1.9.0+ |
| 2.0 | 1.10.0+ |
| 2.1 | 1.12.0+ |
| 2.2, 3.0, 3.1, 3.2 | 1.13.0+ |
| 2.3, 3.3, 3.4, 3.5 | 17.06.0+ |
| 2.4 | 17.12.0+ |
| 3.6 | 18.02.0+ |
| 3.7 | 18.06.0+ |
The default naming scheme for containers created by Compose in this version
has changed from <project>_<service>_<index> to
<project>_<service>_<index>_<slug>, where <slug> is a randomly-generated
hexadecimal string. Please make sure to update scripts relying on the old
naming scheme accordingly before upgrading.
Logs for containers restarting after a crash will now appear in the output
of the up and logs commands.
Added --hash option to the docker-compose config command, allowing users
to print a hash string for each service's configuration to facilitate rolling
updates.
Output for the pull command now reports status / progress even when pulling
multiple images in parallel.
For images with multiple names, Compose will now attempt to match the one
present in the service configuration in the output of the images command.
Parallel run commands for the same service will no longer fail due to name
collisions.
Fixed an issue where paths longer than 260 characters on Windows clients would
cause docker-compose build to fail.
Fixed a bug where attempting to mount /var/run/docker.sock with
Docker Desktop for Windows would result in failure.
The --project-directory option is now used by Compose to determine where to
look for the .env file.
docker-compose build no longer fails when attempting to pull an image with
credentials provided by the gcloud credential helper.
Fixed the --exit-code-from option in docker-compose up to always report
the actual exit code even when the watched container isn't the cause of the
exit.
Fixed a bug that caused hash configuration with multiple networks to be inconsistent, causing some services to be unnecessarily restarted.
Fixed a pipe handling issue when using the containerized version of Compose.
Fixed a bug causing external: false entries in the Compose file to be
printed as external: true in the output of docker-compose config
zsh completion script has been updated with new options, and no
longer suggests container names where service names are expected.Thanks to @nickhiggs, @ofek, @chris-crone, @glorpen, @graphaelli, @wfender, @deivid-rodriguez, @jrbenito, @mirake, @tossmilestone, @riverzhang, @maxwellb, @bhuisgen, @shin- for contributing to this release!
| Binary name | SHA-256 sum |
|---|---|
docker-compose-Darwin-x86_64 | 1f332c45a39c24c62161f219e8a21bc1bcd11daf7f1c832f2a48c3e57679a938 |
docker-compose-Linux-x86_64 | fd16840ca6fdd3a1be2e12bc94d4e768dd819a66b954f41b10d032597746aea6 |
docker-compose-Windows-x86_64.exe | 4b2db3b88eccbacdb6150d209dabc83d9ec4ee0c57fdd5ab527a9c7fa1b38484 |
Fetched March 31, 2026