As a developer, setting up and maintaining your "project environments" can be a real pain. So many tools, so many ways to do it. You hear about Vagrant, scripts, Ansible, Puppet, VirtualBox, and now Docker... but how can you switch from a PHP project to a Node.js project, or (gasp) two different PHP/Node versions without breaking things. What if you needed to run multiple versions at the same time?
Enter Docker Compose, a mature local development tool from Docker that replaces many of the above tools with a single command and single YAML file to help you run everything from a simple web server to a complex multi-service distributed app, all with minimal effort and no overlapping risks of breaking project environments.