Docker vs OpenShift: What are the differences?
Developers describe Docker as "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. On the other hand, OpenShift is detailed as "Red Hat's free Platform as a Service (PaaS) for hosting Java, PHP, Ruby, Python, Node.js, and Perl apps". OpenShift is Red Hat's Cloud Computing Platform as a Service (PaaS) offering. OpenShift is an application platform in the cloud where application developers and teams can build, test, deploy, and run their applications.
Docker belongs to "Virtual Machine Platforms & Containers" category of the tech stack, while OpenShift can be primarily classified under "Platform as a Service".
Some of the features offered by Docker are:
- Integrated developer tools
- open, portable images
- shareable, reusable apps
On the other hand, OpenShift provides the following key features:
- Built-in support for Node.js, Ruby, Python, PHP, Perl, and Java (the standard in today's Enterprise)
- OpenShift is extensible with a customizable cartridge functionality that allows developers to add any other language they wish. We've seen everything from Clojure to Cobol running on OpenShift.
- OpenShift supports frameworks ranging from Spring, to Rails, to Play
"Rapid integration and build up" is the top reason why over 816 developers like Docker, while over 95 developers mention "Good free plan" as the leading cause for choosing OpenShift.
Docker and OpenShift are both open source tools. Docker with 54K GitHub stars and 15.6K forks on GitHub appears to be more popular than OpenShift with 915 GitHub stars and 563 GitHub forks.
Spotify, Pinterest, and Twitter are some of the popular companies that use Docker, whereas OpenShift is used by Accenture, Vungle, and Hazeorid. Docker has a broader approval, being mentioned in 3527 company stacks & 3449 developers stacks; compared to OpenShift, which is listed in 50 company stacks and 52 developer stacks.
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.
Sign up to add or upvote prosMake informed product decisions
Sign up to add or upvote consMake informed product decisions
What is Docker?
What is Red Hat OpenShift?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
Red Hat, Inc.
Red Hat, Inc.
Docker is the new kid on the block disrupting virtualization nowadays. You're able to save up to 70% of your development cost on AWS (or any other cloud) switching to Docker. For example instead of paying for many small VMs you can spin up a large one with many Docker containers to drastically lower your cost. That alone is only one of the reasons why Docker is the future and it's not even the best feature: isolation, testability, reproducibility, standardization, security, and upgrading / downgrading / application versions to name a few. You can spin up 1000's of Docker containers on an ordinary Laptop, but you would have trouble spinning up 100's of VMs. If you haven't already checked out Docker you're missing out on a huge opportunity to join the movement that will change development/production environments forever
I needed a PaaS provider that didn't drop all the time and it's hard to find a good option for PHP applications. Openshift takes care of it. They are a little behind on PHP versions, but that can be solved with a custom cartridge. It requires a little more elbow grease to get rolling when you want to implement something they don't already have, but their quickstarts are great to get rolling with the basics quickly.
The support for macOS is a fake.
I can't work with docker in macOS because de network and comunications with the container don't works correctly.
Currently experimenting. The idea is to isolate any services where I'm not confident yet in their security/quality. The hope is that if there is an exploit in a given service that an attacker won't be able break out of the docker container and cause damage to my systems.
An example of a service I would isolate in a docker container would be a minecraft browser map application I use. I don't know who wrote it, I don't know who's vetting it, I don't know the source code. I would feel a lot better putting this in a container before I expose it to the internet.
I believe I will follow this process for anything that's not properly maintained (not in an trusted apt-repo or some other sort of confidence)
We are testing out docker at the moment, building images from successful staging builds for all our APIs. Since we operate in a SOA (not quite microservices), developers have a dockerfile that they can run to build the entirety of our api infrastructure on their machines. We use the successful builds from staging to power these instances allowing them to do some more manual integration testing across systems.
Each component of the app was launched in a separate container, so that they wouldn't have to share resources: the front end in one, the back end in another, a third for celery, a fourth for celery-beat, and a fifth for RabbitMQ. Actually, we ended up running four front-end containers and eight back-end, due to load constraints.
Linux containers are so much more lightweight than VMs which is quite important for my limited budget. However, Docker has much more support and tooling for it unlike LXC, hence why I use it. rkt is interesting, although I will probably stick with Docker due to being more widespread.
We are running primarily as a micro-services platform and Docker lets us iterate on these smaller units consistently from dev to staging to production. It is also integral to our continuous deployment system for rolling out or rolling back new features.
SG-TravelBuddy server application is hosted on Red Hat OpenShift Online (v3). SG-TravelBuddy mobile (Android) app is connecting to this server for data operations.