What Is Docker?Docker is an open-source platform for building, deploying and managing application containers. It offers an ecosystem of integrated tools and supports various operating systems, including Apple OS X and Microsoft Windows (though it was initially designed for Linux). There are Docker versions for Microsoft Azure and Amazon Web Services.
Docker runs multiple containers on a single operating system by implementing resource isolation in the kernel. This differs from a virtual machine system, which involves encapsulating the entire operating system with executable code on top of the hardware resource layer.
Docker provides a container orchestration system, Docker Swarm, which is directly comparable to OpenShift. |
What Is OpenShift?Red Hat OpenShift is an open-source platform for developing, deploying and managing containerized applications. It is multifaceted and has been re-architected (in 2016-2017) to leverage emerging cloud technologies such as containers.
The OpenShift Container Platform offers an integrated development environment that allows developers to build and deploy containers in the Docker format. It manages containers using the Kubernetes container orchestration platform.
OpenShift is not directly comparable to Docker, because OpenShift is a container orchestration platform, while Docker is a container engine. However, in this article we’ll compare the orchestration features of OpenStack to those of Docker Swarm, which is included in the Docker Community Edition. |
In this article:
Let’s review the basic functionality of the Docker container engine and the OpenShift container platform.
Docker offers both an open-source (Community) and a commercialized (Enterprise) version. Docker provides a variety of tools and components to help you create and manage containers.
The underlying technology handling tasks and workflows is Docker Engine, which generates server-side daemons to host containers, images, storage volumes and networks. The Docker daemon offers a command-line interface (CLI) that allows the client to interact with it through the Docker API. The containers created in Docker are known as Dockerfiles, while Docker Compose files determine the composition of the components in each container.
Docker Hub is a software-as-a-service (SaaS) tool that allows users to share containerized applications via a centralized library. It boasts over 100,000 publicly-available applications, in addition to private and public container registries.
Trusted Registry is a repository similar to Hub, but it provides an added layer of ownership and control over the storage and distribution of container images.
In Docker Engine, the Docker Swarm mode supports load balancing of clusters. This involves pooling together multiple Docker host resources, so they act as one, allowing users to rapidly scale their container deployments to additional hosts.
The OpenShift platform is based on Red Hat Enterprise Linux (RHEL), as well as Docker and Kubernetes. OpenShift can facilitate the management of the overall pipeline for a project. You can implement self-service provisioning for computing resources, provision containers and pull code from the version control system.
Developers can execute new builds in Docker-compatible containers, test them and deploy them. Operations teams can use OpenShift to orchestrate and automate application or container builds, scaling and deployments. OpenShift also offers automated performance monitoring, but the operations team still has to monitor and manage the container instances and underlying resources.
Red Hat OpenShift Container Platform comprises a number of core components, such as an authentication engine for APIs, a scheduler, a management platform and data storage. All these components run on a RHEL operating system.
OpenShift is compatible with Docker tools like Builder and Registry. You can evaluate the compatibility of OpenShift to determine which frameworks or tools you should integrate with the platform.
Related content: Read our guide to OpenShift architecture
Docker and OpenShift are not directly comparable:
Docker is a container engine, typically used to deploy a small number of containers in a development environment or used indirectly by container orchestrators to deploy containers at larger scale. Docker technology allows you to automate the deployment of applications in the form of self-sufficient, portable containers, which can run on-premises or in the cloud.
Docker offers its own container orchestration solution, called Docker Swarm, which is built into the Docker Community Edition. You can also manage Docker containers using other orchestrators, however, note that Kubernetes has deprecated support for Docker since version 1.20.
OpenShift is a container orchestration platform used to manage clusters of containers. It is a platform-as-a-service (PaaS) offering that lets you deploy and scale containerized applications. The platform uses Kubernetes container orchestration technology to manage Docker-formatted containers.
OpenShift uses Kubernetes internally for orchestration. OpenShift builds on Docker’s capabilities, adding features such as management tools and abstracted cluster orchestration. These features make OpenShift an all-encompassing solution for developing and managing containerized applications.
Because Docker and OpenShift serve two different purposes, a more relevant comparison is between Docker Swarm and OpenShift. Let’s see how the two compares.
Docker Swarm is a tool for clustering and scheduling Docker containers. Swarm allows developers and IT administrators to create Docker node clusters and manage them as individual virtual systems.
Docker Engine is the layer between the operating system and the container images, and also offers native support for Swarm mode. Swarm mode enables the integration of Docker Swarm’s orchestration capabilities into Docker Engine (for all versions since 1.12).
Key features of Docker Swarm include:
The drawbacks of Swarm include:
The OpenShift architecture is based on microservices—small, decoupled units that operate collectively. OpenShift runs on top of Kubernetes clusters, storing object data in etcd—a consistent, distributed key-value storage system that allows developers to reliably store the data they want to make accessible to a machine cluster or distributed system.
OpenShift provides the core Kubernetes features, as well as a number of out-of-the-box components for orchestrating and managing containers.
Key features of OpenShift include:
Related content: Read our guide to OpenShift benefits
Drawbacks of OpenShift include:
NetApp Cloud Volumes ONTAP, the leading enterprise-grade storage management solution, delivers secure, proven storage management services on AWS, Azure and Google Cloud. Cloud Volumes ONTAP capacity can scale into the petabytes, and it supports various use cases such as file services, databases, DevOps or any other enterprise workload, with a strong set of features including high availability, data protection, storage efficiencies, Kubernetes integration, and more.
In particular, Cloud Volumes ONTAP supports Kubernetes Persistent Volume provisioning and management requirements of containerized workloads.
Learn more about how to manage OpenShift Persistent Storage with Cloud Volumes ONTAP.
Learn more about how to use and benefit NetApp Cloud Volumes ONTAP and Trident for Docker.
And learn more about how Cloud Volumes ONTAP helps to address the challenges of containerized applications in these Kubernetes Workloads with Cloud Volumes ONTAP Case Studies.