Need advice about which tool to choose?Ask the StackShare community!


+ 1

+ 1
Add tool

Docker vs Heroku: What are the differences?

Docker is a containerization platform that helps package and run applications consistently across different environments. Heroku is a cloud platform that simplifies application deployment and management, offering a platform-as-a-service (PaaS) solution for developers. Here are some key differences between Docker and Heroku:

  1. Containerization vs Platform as a Service (PaaS): Docker is primarily a containerization platform to package applications and their dependencies into lightweight, isolated containers. It provides a consistent and portable environment for running applications across different environments. On the other hand, Heroku is a fully managed Platform as a Service (PaaS) solution. It abstracts away the infrastructure layer and provides a platform to deploy and manage your applications without worrying about server provisioning, scaling, and maintenance.

  2. Flexibility and Control: Docker provides a high level of flexibility and control over the application environment. You can define and configure every aspect of your application stack within a Docker image, including the operating system, libraries, and dependencies. This allows for customizability and fine-grained control over the application runtime environment. Heroku, on the other hand, abstracts away the infrastructure details and provides a more opinionated platform. It imposes certain restrictions and conventions on the application deployment process to ensure compatibility and ease of management.

  3. Portability and Deployment Flexibility: Docker containers are highly portable and can run consistently across different environments, whether it's a local development machine, a staging server, or a production environment. With Docker, you have the freedom to deploy your containers to any infrastructure that supports Docker, such as on-premises servers, cloud platforms, or even your local machine. Heroku, on the other hand, is a cloud-based platform, and applications deployed on Heroku are specifically designed to run on the Heroku infrastructure.

  4. Management and Scaling: Docker provides a rich ecosystem of tools and features for managing containers, including container orchestration platforms like Kubernetes and Docker Swarm. With Docker, you have granular control over scaling, networking, and resource allocation for your containers. Heroku, as a fully managed platform, handles many aspects of application management for you. It simplifies the scaling process and provides automated scaling based on application demand. Heroku also offers built-in features for logging, monitoring, and database management to manage the operational aspects of your application.

In summary, Docker focuses on containerization and provides a flexible and portable approach to application deployment. It allows for customizability, control over the runtime environment, and the ability to deploy containers on various infrastructure options. Heroku, on the other hand, is a managed PaaS solution that abstracts away the infrastructure details and provides a simplified deployment experience. It offers ease of use, automatic scaling, and built-in management features, but it may have limitations in terms of deployment options and customization compared to Docker.

Decisions about Docker and Heroku
Shared insights

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.

See more
Florian Sager
IT DevOp at Agitos GmbH · | 3 upvotes · 424.3K views

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.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Docker
Pros of Heroku
  • 823
    Rapid integration and build up
  • 691
  • 521
    Open source
  • 505
    Testa­bil­i­ty and re­pro­ducibil­i­ty
  • 460
  • 218
  • 185
  • 106
    Upgrading / down­grad­ing / ap­pli­ca­tion versions
  • 88
  • 85
    Private paas environments
  • 34
  • 26
    Limit resource usage
  • 17
    Game changer
  • 16
    I love the way docker has changed virtualization
  • 14
  • 12
  • 8
    Docker's Compose tools
  • 6
    Easy setup
  • 6
    Fast and Portable
  • 5
    Because its fun
  • 4
    Makes shipping to production very simple
  • 3
    Highly useful
  • 3
    It's dope
  • 2
    Very easy to setup integrate and build
  • 2
    HIgh Throughput
  • 2
    Package the environment with the application
  • 2
    Does a nice job hogging memory
  • 2
    Open source and highly configurable
  • 2
    Simplicity, isolation, resource effective
  • 2
    MacOS support FAKE
  • 2
    Its cool
  • 2
    Docker hub for the FTW
  • 2
  • 0
  • 703
    Easy deployment
  • 459
    Free for side projects
  • 374
    Huge time-saver
  • 348
    Simple scaling
  • 261
    Low devops skills required
  • 190
    Easy setup
  • 174
    Add-ons for almost everything
  • 153
    Beginner friendly
  • 150
    Better for startups
  • 133
    Low learning curve
  • 48
    Postgres hosting
  • 41
    Easy to add collaborators
  • 30
    Faster development
  • 24
    Awesome documentation
  • 19
    Simple rollback
  • 19
    Focus on product, not deployment
  • 15
    Natural companion for rails development
  • 15
    Easy integration
  • 12
    Great customer support
  • 8
    GitHub integration
  • 6
    Painless & well documented
  • 6
  • 4
    I love that they make it free to launch a side project
  • 4
  • 3
    Great UI
  • 3
    Just works
  • 2
    PostgreSQL forking and following
  • 2
    MySQL extension
  • 1
  • 1
    Able to host stuff good like Discord Bot
  • 0

Sign up to add or upvote prosMake informed product decisions

Cons of Docker
Cons of Heroku
  • 8
    New versions == broken features
  • 6
    Unreliable networking
  • 6
    Documentation not always in sync
  • 4
    Moves quickly
  • 3
    Not Secure
  • 27
    Super expensive
  • 9
    Not a whole lot of flexibility
  • 7
    No usable MySQL option
  • 7
  • 5
    Low performance on free tier
  • 2
    24/7 support is $1,000 per month

Sign up to add or upvote consMake informed product decisions

What is 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

What is Heroku?

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.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Docker?
What companies use Heroku?
See which teams inside your own company are using Docker or Heroku.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Docker?
What tools integrate with Heroku?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Sep 29 2020 at 7:36PM


PythonSlackG Suite+17
Jul 9 2019 at 7:22PM

Blue Medora

DockerPostgreSQLNew Relic+8
DockerAmazon EC2Scala+8
What are some alternatives to Docker and Heroku?
LXC is a userspace interface for the Linux kernel containment features. Through a powerful API and simple tools, it lets Linux users easily create and manage system or application containers.
Rocket is a cli for running App Containers. The goal of rocket is to be composable, secure, and fast.
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.
Cloud Foundry
Cloud Foundry is an open platform as a service (PaaS) that provides a choice of clouds, developer frameworks, and application services. Cloud Foundry makes it faster and easier to build, test, deploy, and scale applications.
Vagrant provides the framework and configuration format to create and manage complete portable development environments. These development environments can live on your computer or in the cloud, and are portable between Windows, Mac OS X, and Linux.
See all alternatives