anchor.diff:  
   <%= toc %>
   
  -## Creating a Docker Compose config
  +## Overview
   
  -For Docker-based builds we recommend using [Docker Compose](https://docs.docker.com/compose/) as it allows each pipeline to define its own `docker-compose.yml` with dependent containers and environment variables to be passed through.
  +To run your steps using Docker, we have two [plugins](/docs/agent/v3/plugins): the [Docker Compose plugin](https://github.com/buildkite-plugins/docker-compose-buildkite-plugin), and the [Docker plugin](https://github.com/buildkite-plugins/docker-buildkite-plugin).
  +
  +- the docker compose plugin gives you fine grained control over your docker configuration (need to use this one if you've got multiple containers or dependent services, use this if you need to build an image or have a docker-compose.yml file in your repo)
  +- the docker plugin is for single container applications, less setup, no docker-compose.yml, can't build an image
  +
  +## Creating a Docker Compose configuration file
  +
  +For most projects we recommend using [Docker Compose](https://docs.docker.com/compose/) as it allows each pipeline to define its own `docker-compose.yml` with dependent containers and environment variables to be passed through.
   
   Here's a example of a `docker-compose.yml` file for a Ruby on Rails application that depends on Postgres, Redis and Memcache:
   
  
positive.code: 
  Docker has released the [system prune](https://docs.docker.com/engine/reference/commandline/system_prune) command that will remove all unused containers, networks, and images from your environment. We recommend running either `docker system prune` or using a similar tool like [docker-gc](https://github.com/spotify/docker-gc) on a daily basis.
  
  ## Docker without Docker Compose
  
  The Buildkite Agent also has support for running builds for pipelines that only need a single container and Dockerfile to run. The [Docker Buildkite Plugin](https://github.com/buildkite-plugins/docker-buildkite-plugin) provides a Docker Compose file and a set of hooks to your pipeline.
  
  To use the Docker plugin, add the `plugins` attribute to your command step. In this example, the `yarn` commands will be run inside a Docker container using the node:7 Docker image:
  
  ```yml
  steps:
    - command: yarn install && yarn run test
      plugins:
        docker#v1.1.1:
          image: "node:7"
          workdir: /app
  ```
  
  There are many configuration options available for the Docker plugin. For the complete list, see the readme for the [Docker Buildkite Plugin on Github](https://github.com/buildkite-plugins/docker-buildkite-plugin).
  
  ## Creating Your Own Docker Infrastructure
  
  If your team has significant Docker experience you might find it worthwhile invoking your own runner scripts rather than using the simpler built-in Docker support.
  
  To do this see the [agent hooks](/docs/agent/v2/hooks) and [parallelizing builds](parallelizing-builds) documentation.
  
  
negative.code:     image: tutum/memcached
    app:
      build: .
      working_dir: /app
      volumes:
        - .:/app
      depends_on:
  