Deploys and scales containerised apps across your own Docker hosts over a WireGuard mesh, without Kubernetes or Swarm.
docker/compose
A CLI tool for defining and running multi-container Docker applications from a single Compose file.
- Stars
- 38,466
- Forks
- 5,883
- Open issues
- 103
- Last commit
- 3 days ago
What is it?
Docker Compose lets you describe the containers that make up an application, such as a web server, a database and a cache, in a YAML file that follows the Compose specification. Running `docker compose up` creates and starts all of those services together, so a multi-service setup can be launched with one command instead of many separate `docker run` calls.
The Compose file defines how each container is built or pulled, which ports and volumes it uses, and how services connect to one another. The project is written in Go and ships as a Docker CLI plugin, so the `docker compose` command works alongside the regular Docker CLI. It is included in Docker Desktop for Windows and macOS, and standalone binaries are published for Linux.
The README notes that the older Python version lives on the v1 branch and that Docker Swarm no longer receives Compose feature updates since it is maintained outside Docker Inc.
Key features
- 01Defines multi-container applications in a single YAML file that follows the Compose specification.
- 02Starts, stops and rebuilds all services in an app with one command such as `docker compose up`.
- 03Builds images from a Dockerfile or pulls them from a registry for each service.
- 04Runs on Windows, macOS and Linux, bundled with Docker Desktop or as standalone binaries.
Use cases
- Running a web app together with its database and cache on a developer laptop.
- Setting up reproducible local environments for a team with a shared Compose file.
- Spinning up integration test dependencies before a test suite runs.
Quick start
- 1
Install Docker Compose on Windows or macOS via Docker Desktop
- 2
On Linux, download the binary from the releases page and place it in the CLI plugins folder
- 3
Define your services in a compose.yaml file, then start the app
docker compose up
Things to know
- The Python-based v1 version is only available on a legacy branch.
- Docker Swarm users may not get all Compose features.
In collections
Topics
FAQ
- What is compose?
- A CLI tool for defining and running multi-container Docker applications from a single Compose file. Docker Compose lets you describe the containers that make up an application, such as a web server, a database and a cache, in a YAML file that follows the Compose specification. Running `docker compose up` creates and starts all of those services together, so a multi-service setup can be launched with one command instead of many separate `docker run` calls.
- Is compose free to use? What license does it have?
- compose is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is compose still maintained?
- Actively maintained. The last commit to compose was on Oct 22, 2026.
- What can I use compose for?
- Running a web app together with its database and cache on a developer laptop. Setting up reproducible local environments for a team with a shared Compose file. Spinning up integration test dependencies before a test suite runs.
- How do I install compose?
- Install Docker Compose on Windows or macOS via Docker Desktop On Linux, download the binary from the releases page and place it in the CLI plugins folder Define your services in a compose.yaml file, then start the app: docker compose up
- Where can I get compose?
- The source code and installation instructions are on GitHub: https://github.com/docker/compose
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open source container management platform for running Kubernetes clusters across many environments in production.
A CLI and TUI that traces any process, port, container, or file back to the chain of systems that started it.
Open source system for deploying, scaling and managing containerized applications across multiple hosts.
A modern, self-hosted web UI for managing Docker containers, images, and Compose stacks.
A workload orchestrator that schedules and runs containers, VMs, and legacy binaries across on-prem and cloud infrastructure.