February 29, 2024 By Phill Powell 5 min read

Container management has come a long way. For decades, managing containerized environments was a relatively simple affair. The modern idea of a computer container originally appeared back in the 1970s, with the concept first being used to help define application code on Unix systems.

Modern containerization technology has moved on steadily from those early beginnings, and when companies run containers now, they’re getting a lot more utility for their investment. From small startups to large, established businesses, container frameworks have proven exceedingly capable of generating stable workflows with optimized runtimes and continuous delivery.

What is a container?

Containers are executable units of software where application code is packaged with its libraries and dependencies. They are packaged in standardized ways so that the code can be run anywhere, including desktop, traditional IT or the cloud.

This is done through a form of operating system (OS) virtualization in which features of the OS kernel (e.g., Linux namespaces and cgroups, Windows silos and job objects) can be leveraged to isolate processes and control the amount of CPU, memory and disk that those processes can access.

Containers and Docker

Container technology fundamentally changed in 2013 with Docker’s introduction and has continued unabated into this decade, steadily gaining in popularity and user acceptance. Clearly, there was a strong but unmet marketplace demand for containerization software of this type, as evidenced by Docker’s rapid success and now overwhelming market superiority.

One 2021 IBM survey revealed that 61% of respondents indicated they had used containers in at least 50% of the new applications they had built during the last 2 years. An even larger group of respondents (64%) reported expecting to use containers for at least 50% of the apps they would build over the next 2 years.

Containers are all about distributing and protecting data and running apps. Therefore, it makes perfect sense that IT industries are the primary users of containerization software, with the following industries ranking as the top three beneficiaries (link resides outside ibm.com):

  1. Machine learning
  2. Software development
  3. Artificial intelligence (AI)

Docker and Kubernetes

The containerized applications market is presently dominated by two entities:

Docker

The most commonly used containerization platform is Docker. Docker containers were originally built around the Docker Engine in 2013 and run according to an application programming interface (API). Docker is actually a Platform-as-a-Service (PaaS) and its main benefit is its flexibility. Docker can take any application and its associated dependencies and turn it into a virtual container, which can then be run on any Windows, macOS or Linux-running computer. The system uses Docker images, which are read-only templates that are used for building containers, and Dockerfiles, which are text files that accompany and explain Docker images. Docker images and other container images require a space in which to run. This is managed by the container runtime—a software solution interacting with the OS to make the necessary room to run container images.

Kubernetes

The most popular container orchestration platform is Kubernetes, which was created by Google in 2014 and is still popular for the robust way it automates the deployment of software, enables scalability and supports container management. Further, Kubernetes is an open-source system and encourages the avid participation of contributors (who oversee the project now), with each software provider putting its own spin on Kubernetes. For example, with some services, users can not only create Kubernetes clusters but also deploy scalable web apps and analyze logs.

At present, Docker and Kubernetes are by far the most popularly used tools dealing with computer containers. According to recent containerization projections for 2024 (link resides outside ibm.com), Dockers now controls a massive 82.8% of this market, while Kubernetes checks in with an 11.52% market share.

To learn more about how Kubernetes and Docker relate, check out “Kubernetes vs. Docker: Why Not Both?

Container use cases

There’s no shortage of relatable use cases involving containers because they are becoming increasingly prominent, especially in cloud computing environments or ecosystems. Many organizations are even considering containers as a replacement for virtual machines (VMs) as their choice of a general-purpose, cloud computing platform for their applications and workloads. But within that very broad scope, there are key use cases where cloud-native containers are especially relevant:

  • Microservices: Containers are small, lightweight and portable, which makes them the ideal choice for microservices architectures, where containerized applications are constructed of many, loosely coupled and independently deployable smaller services. A hypervisor is used to oversee microservice operations when more than one virtual machine is being used on a computer.
  • DevOps: The combination of microservices as an architecture and containers as a platform is a strong pairing and a common foundation for many teams that embrace DevOps and development environments as the way they choose to handle software development.
  • Hybrid multicloud: Because you can run containers consistently anywhere—across laptops, on-premises and in cloud environments—they’re an ideal underlying infrastructure and architecture for cloud providers, as well as any hybrid cloud and any hybrid cloud and multicloud scenarios in which organizations find themselves operating across a mix of multiple public clouds and private clouds in combination with an on-premises data center.
  • Serverless: Serverless frees up cloud-native developers who are working on creating apps from having to think about server demands and constraints, which are kept in the background. A major advantage of the serverless method is that it promotes the necessary mental focus that a developer needs while building apps, without overwhelming the developer with myriad details.

Related use cases and solutions

Containers, containerization or container orchestration also factor into the following related solutions:

  • Application modernizing and migration: One of the most common approaches to application modernization is to first optimize and containerize applications in preparation for eventual migration to a cloud architecture. This process should occur before the creation of the application code, which is the source code that contains all instructions for this application.
  • Separate containers: Separate containers have come into popular use because they assist users of microservices so well. As their name indicates, separate containers are primarily used to help keep microservices better organized by allowing users to keep different aspects of a “crowded” container within multiple, partitioned containers. Separate containers are also seen as increasing efficiency of operations by making necessary updates quick and easy.
  • Multi-tenancy: Multi-tenancy is its own architecture system, structured around a system of users (called tenants) who are all operating a single application within a shared environment. Although some customization options may be available in a multi-tenancy system, those options are purposefully limited to keep the system simple and easy to operate. Containers work well in managing multi-tenancy deployments because multiple apps can be run on a single host.

Container types

There are two basic types of containers, and each serves a different group of container technologies:

System containers

Also known as “operating system containers,” system containers let you run many different processes simultaneously. System containers are ideal for managing traditional apps and handling monolithic applications that are designed to perform a single function, as expressed through one logical executable file. These containers are also equipped for hosting the architecture, configurations and tools necessary for running VMs. As a default measure, system containers prohibit layered filesystems.

Container technologies served: BSD Jails, Linux VServer, LXC, OpenVZ, Solaris Zones

Application containers

Application containers aren’t nearly as multi-talented as system containers, which can execute multiple processes concurrently. Application containers even carry that name because they are intended to serve one application by carrying out one and only one executable action. Application containers exist to package and operate a single service, and they do not support layered filesystems.

Container technologies served: Docker, Rocket

IBM and containers

Containerization requires some extra effort and equipping, but pays dividends. Container orchestration tools can facilitate an easier container experience for your production environments—no matter where your products are in their respective lifecycles.

With container services from IBM, built on open-source technologies like Kubernetes, you can facilitate and accelerate your journey to the cloud in a fast, safe and productive way.

Explore Containers on IBM Cloud Learn more about Red Hat OpenShift on IBM Cloud Explore IBM Cloud Kubernetes Service
Was this article helpful?
YesNo

More from Cloud

A major upgrade to Db2® Warehouse on IBM Cloud®

2 min read - We’re thrilled to announce a major upgrade to Db2® Warehouse on IBM Cloud®, which introduces several new capabilities that make Db2 Warehouse even more performant, capable, and cost-effective. Here's what's new Up to 34 times cheaper storage costs The next generation of Db2 Warehouse introduces support for Db2 column-organized tables in Cloud Object Storage. Db2 Warehouse on IBM Cloud customers can now store massive datasets on a resilient, highly scalable storage tier, costing up to 34x less. Up to 4 times…

Manage the routing of your observability log and event data 

4 min read - Comprehensive environments include many sources of observable data to be aggregated and then analyzed for infrastructure and app performance management. Connecting and aggregating the data sources to observability tools need to be flexible. Some use cases might require all data to be aggregated into one common location while others have narrowed scope. Optimizing where observability data is processed enables businesses to maximize insights while managing to cost, compliance and data residency objectives.  As announced on 29 March 2024, IBM Cloud® released its next-gen observability…

The recipe for RAG: How cloud services enable generative AI outcomes across industries

4 min read - According to research from IBM®, about 42% of enterprises surveyed have AI in use in their businesses. Of all the use cases, many of us are now extremely familiar with natural language processing AI chatbots that can answer our questions and assist with tasks such as composing emails or essays. Yet even with widespread adoption of these chatbots, enterprises are still occasionally experiencing some challenges. For example, these chatbots can produce inconsistent results as they’re pulling from large data stores…

IBM Newsletters

Get our newsletters and topic updates that deliver the latest thought leadership and insights on emerging trends.
Subscribe now More newsletters