Repolode
docker

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. 1

    Install Docker Compose on Windows or macOS via Docker Desktop

  2. 2

    On Linux, download the binary from the releases page and place it in the CLI plugins folder

  3. 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