4.4K
3K
446

What is Docker Compose?

With Compose, you define a multi-container application in a single file, then spin your application up in a single command which does everything that needs to be done to get it running.
Docker Compose is a tool in the Container Tools category of a tech stack.
Docker Compose is an open source tool with 16.7K GitHub stars and 2.6K GitHub forks. Here’s a link to Docker Compose's open source repository on GitHub

Who uses Docker Compose?

Companies
1036 companies reportedly use Docker Compose in their tech stacks, including StackShare, CircleCI, and Docker.

Developers
3222 developers on StackShare have stated that they use Docker Compose.

Docker Compose Integrations

CircleCI, Docker, Flocker, Rancher, and Docker Datacenter are some of the popular tools that integrate with Docker Compose. Here's a list of all 12 tools that integrate with Docker Compose.

Why developers like Docker Compose?

Here’s a list of reasons why companies and developers use Docker Compose
Docker Compose Reviews

Here are some stack decisions, common use cases and reviews by companies and developers who chose Docker Compose in their tech stack.

GitHub
nginx
ESLint
AVA
Semantic UI React
Redux
React
PostgreSQL
ExpressJS
Node.js
FeathersJS
Heroku
Amazon EC2
Kubernetes
Jenkins
Docker Compose
Docker
#Frontend
#Stack
#Backend
#Containers
#Containerized

Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2.

We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent.

See more
Zach Holman
Zach Holman
at Zach Holman · | 14 upvotes · 12.4K views
Docker Compose
Docker
Home Assistant

I've been recently getting really into home automation- you know, making my house Smart™, which basically means half the time my lights don't turn on and the other half of the time apparently my kitchen faucet needs a static IP address.

But it's been a blast! It's a fun way to write code for yourself, outside of work, to have an impact in the real world. It's a nice way of falling in love with a different side of programming again.

I've used Apple's HomeKit for awhile, since we're pretty all-in in Apple devices at home, but the rough edges have been grating at me more and more. HomeKit is so opaque- you can't see what's wrong, why a device is unresponsive, and most importantly: the compatibility isn't there. HomeKit has a limited selection of — more expensive — accessories, and as you go beyond just simple LED lights, you want a bit more power. Also, we're programmers, dammit, gimme all the things.

Anyway, I've switched to Home Assistant the last few months, and I'm kicking myself I didn't make the switch earlier. As a programmer, it's great: you get the most capability than pretty much any other smart home platform (integrations have been written for most devices and technologies out there today), it's easier to debug, and when you want to go bigger than just simple lights on/off, HA has some really powerful stuff behind it.

I use Home Assistant in conjunction with Docker and Docker Compose; since the config is extracted out, upgrades are usually as easy as a pull of the latest version. I've just started digging into writing integrations for a lesser-used device that I have at home, and HA makes it pretty straightforward to just magically add it to the home network.

It plays well with others, too- we require a VPN connection in to the home network to access our Home Assistant install, and HA has a few tricks to help with that (ignoring the VPN route if you're on a local network, etc). Nice client support for iOS and Android, too.

Anyway, big fan of Home Assistant if you want to go beyond simple home automations and setup. Wish I would have done it a lot earlier. Also, big fan of jumping into all this if you have the time and interest to do so- it's been tickling a different part of my code brain than I've had access to in awhile, and that's been fun in and of itself.

See more
Tim Specht
Tim Specht
‎Co-Founder and CTO at Dubsmash · | 13 upvotes · 4.7K views
atDubsmashDubsmash
Docker Compose
Docker
#ContainerTools

On the backend side we started using Docker almost 2 years ago. Looking back, this was absolutely the right decision, as running things manually with so many services and so few engineers wouldn’t have been possible at all.

While in the beginning we used it mostly to ease-up local development, we have since started using it quickly to also run all of our CI & CD pipeline on top of it. This not only enabled us to speed things up drastically locally by using Docker Compose to spin up different services & dependencies and making sure they can talk to each other, but also made sure that we had reliable builds on our build infrastructure and could easily debug problems using the baked images in case anything should go wrong. Using Docker was a slight change in the beginning but we ultimately found that it forces you to think through how your services are composed and structured and thus improves the way you structure your systems.

#ContainerTools

See more
Stanislav Valasek
Stanislav Valasek
Docker Compose
Docker
PostgreSQL
Gin Gonic
Go
axios
vuex
Vue.js
Quasar Framework

I built a project using Quasar Framework with Vue.js, vuex and axios on the frontend and Go, Gin Gonic and PostgreSQL on the backend. Deployment was realized using Docker and Docker Compose. Now I can build the desktop and the mobile app using a single code base on the frontend. UI responsiveness and performance of this stack is amazing.

See more
Denys
Denys
Software engineer at Typeform · | 7 upvotes · 24.3K views
atTypeformTypeform
Docker Compose
Docker
Git
Vim
Visual Studio Code
Go
  • Go because it's easy and simple, facilitates collaboration , and also it's fast, scalable, powerful.
  • Visual Studio Code because it has one of the most sophisticated Go language support plugins.
  • Vim because it's Vim
  • Git because it's Git
  • Docker and Docker Compose because it's quick and easy to have reproducible builds/tests with them
  • @Archlinux (wtf it's not here?!) because Docker for Mac/Win is a disaster for the human's central nervous system, and Arch is the coolest Linux distro so far
See more
Sebastian Gębski
Sebastian Gębski
CTO at Shedul/Fresha · | 6 upvotes · 22K views
atFresha EngineeringFresha Engineering
Amazon RDS
Amazon S3
Amazon EKS
Amazon EC2
Ansible
Terraform
Kubernetes
Docker Compose
Docker

Heroku was a decent choice to start a business, but at some point our platform was too big, too complex & too heterogenic, so Heroku started to be a constraint, not a benefit. First, we've started containerizing our apps with Docker to eliminate "works in my machine" syndrome & uniformize the environment setup. The first orchestration was composed with Docker Compose , but at some point it made sense to move it to Kubernetes. Fortunately, we've made a very good technical decision when starting our work with containers - all the container configuration & provisions HAD (since the beginning) to be done in code (Infrastructure as Code) - we've used Terraform & Ansible for that (correspondingly). This general trend of containerisation was accompanied by another, parallel & equally big project: migrating environments from Heroku to AWS: using Amazon EC2 , Amazon EKS, Amazon S3 & Amazon RDS.

See more

Docker Compose Alternatives & Comparisons

What are some alternatives to Docker Compose?
Kubernetes
Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions.
Docker
The Docker Platform is the industry-leading container platform for continuous, high-velocity innovation, enabling organizations to seamlessly build and share any application — from legacy to what comes next — and securely run them anywhere
Docker Swarm
Swarm serves the standard Docker API, so any tool which already communicates with a Docker daemon can use Swarm to transparently scale to multiple hosts: Dokku, Compose, Krane, Deis, DockerUI, Shipyard, Drone, Jenkins... and, of course, the Docker client itself.
Helm
Helm is the best way to find, share, and use software built for Kubernetes.
Ansible
Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates. Ansible’s goals are foremost those of simplicity and maximum ease of use.
See all alternatives

Docker Compose's Stats

Docker Compose's Followers
3007 developers follow Docker Compose to keep up with related blogs and decisions.
Polchompunoot Thongtaem Na Ayudhya
luisico
Sungwon Lee
Hoang Tran
pkropp
Michael Slavitch
Ryan Hicks
Julian Benitez
Phillip Tola
José Luis González Vergara