Need advice about which tool to choose?Ask the StackShare community!
Docker vs Heroku: What are the differences?
What is Docker? Enterprise Container Platform for High-Velocity Innovation. 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.
What is Heroku? Build, deliver, monitor and scale web apps and APIs with a trail blazing developer experience. Heroku is a cloud application platform – a new way of building and deploying web apps. Heroku lets app developers spend 100% of their time on their application code, not managing servers, deployment, ongoing operations, or scaling.
Docker and Heroku are primarily classified as "Virtual Machine Platforms & Containers" and "Platform as a Service" tools respectively.
Some of the features offered by Docker are:
- Integrated developer tools
- open, portable images
- shareable, reusable apps
On the other hand, Heroku provides the following key features:
- Agile deployment for Ruby, Node.js, Clojure, Java, Python, Go and Scala.
- Run and scale any type of app.
- Total visibility across your entire app.
"Rapid integration and build up", "Isolation" and "Open source" are the key factors why developers consider Docker; whereas "Easy deployment", "Free for side projects" and "Huge time-saver" are the primary reasons why Heroku is favored.
Docker is an open source tool with 54K GitHub stars and 15.6K GitHub forks. Here's a link to Docker's open source repository on GitHub.
Spotify, Pinterest, and Twitter are some of the popular companies that use Docker, whereas Heroku is used by StackShare, Heroku, and Product Hunt. Docker has a broader approval, being mentioned in 3527 company stacks & 3449 developers stacks; compared to Heroku, which is listed in 1504 company stacks and 964 developer stacks.
Heroku will be used to deploy the app as it is simple to setup and that is especially useful for an MVP. When you deploy an application, they already setup a website for you secured with HTTPS. They also have a lot of webpack and Docker support for you to bundle your app in. Github Actions will be used for the CI/CD pipeline as it easily integrates with Github. They also have “Actions” which help automate deployment workflow, and they already have one for deploying a Docker container to Heroku which we could use. Docker will be used to containerize the application as it will make our application portable and easier to deploy. This will also be beneficial for local developer environments.
lxd/lxc and Docker aren't congruent so this comparison needs a more detailed look; but in short I can say: the lxd-integrated administration of storage including zfs with its snapshot capabilities as well as the system container (multi-process) approach of lxc vs. the limited single-process container approach of Docker is the main reason I chose lxd over Docker.
Pros of Docker
- Rapid integration and build up823
- Isolation688
- Open source519
- Testability and reproducibility505
- Lightweight459
- Standardization217
- Scalable184
- Upgrading / downgrading / application versions105
- Security87
- Private paas environments84
- Portability33
- Limit resource usage25
- Game changer16
- I love the way docker has changed virtualization15
- Fast13
- Concurrency11
- Docker's Compose tools7
- Easy setup5
- Fast and Portable5
- Because its fun4
- Makes shipping to production very simple3
- It's dope2
- Highly useful2
- Very easy to setup integrate and build1
- Package the environment with the application1
- Does a nice job hogging memory1
- Open source and highly configurable1
- Simplicity, isolation, resource effective1
- MacOS support FAKE1
- Its cool1
- Docker hub for the FTW1
- HIgh Throughput1
Pros of Heroku
- Easy deployment704
- Free for side projects459
- Huge time-saver374
- Simple scaling348
- Low devops skills required261
- Easy setup190
- Add-ons for almost everything174
- Beginner friendly153
- Better for startups150
- Low learning curve133
- Postgres hosting48
- Easy to add collaborators41
- Faster development30
- Awesome documentation24
- Simple rollback19
- Focus on product, not deployment19
- Natural companion for rails development15
- Easy integration15
- Great customer support12
- GitHub integration8
- Painless & well documented6
- No-ops6
- I love that they make it free to launch a side project4
- Free4
- Great UI3
- Just works3
- PostgreSQL forking and following2
- MySQL extension2
- Security1
- Able to host stuff good like Discord Bot1
- Sec0
Sign up to add or upvote prosMake informed product decisions
Cons of Docker
- New versions == broken features8
- Unreliable networking6
- Documentation not always in sync6
- Moves quickly4
- Not Secure3
Cons of Heroku
- Super expensive24
- Not a whole lot of flexibility7
- No usable MySQL option5
- Storage5
- Low performance on free tier4
- 24/7 support is $1,000 per month1