# Define and run multi-container applications with Docker


# Docker Compose v2

![Docker Compose](https://github.com/docker/compose/raw/main/logo.png?raw=true align="center")

Docker Compose is a tool for running multi-container applications on Docker defined using the [Compose file format](https://compose-spec.io/). A Compose file is used to define how one or more containers that make up your application are configured. Once you have a Compose file, you can create and start your application with a single command: `docker compose up`.

# Where to get Docker Compose

### Windows and macOS

Docker Compose is included in [Docker Desktop](https://www.docker.com/products/docker-desktop) for Windows and macOS.

### Linux

You can download Docker Compose binaries from the [release page](https://github.com/docker/compose/releases) on this repository.

Rename the relevant binary for your OS to `docker-compose` and copy it to `$HOME/.docker/cli-plugins`

Or copy it into one of these folders to install it system-wide:

* `/usr/local/lib/docker/cli-plugins` OR `/usr/local/libexec/docker/cli-plugins`
    
* `/usr/lib/docker/cli-plugins` OR `/usr/libexec/docker/cli-plugins`
    

(might require making the downloaded file executable with `chmod +x`)

## Quick Start

Using Docker Compose is a three-step process:

1. Define your app's environment with a `Dockerfile` so it can be reproduced anywhere.
    
2. Define the services that make up your app in `compose.yaml` so they can be run together in an isolated environment.
    
3. Lastly, run `docker compose up` and Compose will start and run your entire app.
    

A Compose file looks like this:

```yaml
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
  redis:
    image: redis
```

## Contributing

Want to help develop Docker Compose? Check out our [contributing documentation](https://github.com/docker/compose/blob/main/CONTRIBUTING.md).

If you find an issue, please report it on the [issue tracker](https://github.com/docker/compose/issues/new/choose).

## Legacy

The Python version of Compose is available under the `v1` [branch](https://github.com/docker/compose/tree/v1).
