Containers: A cheat sheet for tech pros

Containers make it easier for IT admins to deploy and update apps and services. Here's an overview of what tech pros need to know about containers.

Video: 3 big things every company needs to know about containers

Containers have revolutionized the way many people view IT and the deployment of apps and services. But what exactly are containers?

Containers are self-contained apps and services that IT admins can easily deploy and update. In many instances and applications, containers make things easier and more reliable and secure. Containers are also part of the backbone of Kubernetes. In fact, without containers, there'd be no Kubernetes.

This primer is a quick way to get up to speed on containers. We'll update this "living" guide periodically when news and methods pertaining to containers are released.

SEE: Kubernetes security guide (free PDF) (TechRepublic)

Executive summary

  • What are containers? Containers are self-contained apps and services that encapsulate all dependencies in order to make them easily deployable and updatable.
  • Why do containers matter? Containers make it much easier for administrators to roll out apps and services either to individual servers, a cluster of  and to effectively maintain them.
  • Who do containers affect? Containers affect IT pros, end users, and business owners.
  • When are containers happening? The foundation of containers came about in the 1970s with UNIX chroot and have been evolving ever since.
  • How do I start using containers? You can start by familiarizing yourself with virtual machines (VMs), Docker, and Kubernetes.

SEE: All of TechRepublic's smart person's guides and cheat sheets

What are containers?

In the simplest terms, containers are self-contained applications, packaged with their dependencies, that IT can easily deploy and update.

Similar to VMs, containers remove the hardware dependency from the equation. Containers are easily distributed via a virtual platform, and they're a way your company can save money, considering you now have the ability to roll out multiple applications and services that do not have their own hardware requirements.

Containers are also a great means for deploying and scaling websites. Imagine your basic website (served on a VM) allows you to easily add web-based applications and/or services to expand your offerings; these applications and/or services could be added without requiring their dependencies to be met by the hosting computer. With this in place, you no longer have to worry that installing a new application will interfere with either the host computer or the host VM, as the container is a self-contained application.

Sometimes people are confused about the differences between VMs and containers. Containers are not VMs, and Docker is not a container. The hierarchy looks something like this:

Hardware > host OS > VM > Docker > container

A container is served up by software (such as Docker), which exists on a VM (such as those run on VirtualBox, VMware or, on a much larger scale, AWS) that is run on a host OS (such as Ubuntu Linux) running on adequate hardware. Containers can also be deployed on Kubernetes clusters, which make it much easier to manage them at scale.

When you consider making containers part of your business plan, a local Docker installation isn't the only game in town. Other services to consider are:

Additional resources:

Why do containers matter?

The importance of containers starts at the server level. Imagine that everything you run on your server is done so efficiently that each running app and service doesn't compete for precious host resources or directly affect the running of the host machine. That is where the benefit of containers begins. Because of the isolated nature of containers, an administrator doesn't have to concern herself with each app or service interfering or affecting one another.

Certain members of the corporate food chain will be more interested in containers' cost effectiveness. Removing the cost of hardware from the equation, let's see how much creating an environment for running containers would cost. Remember, we have our host OS, our VM platform, and the software by which we will deploy the containers. Let's break it down with real-world solutions (understanding there are other options available for each).

  • Host OS: Ubuntu Linux. Free.
  • VM platform: VirtualBox. Free.
  • Deployment software: Docker. Free

You could have a completed software stack, ready for the deployment of your containers, for free. If you opt to use VMware as your VM platform, there will be an associated cost. If you're looking at a much larger deployment, there could be the added cost of a hosting service, such as Azure or AWS. But for small- to mid-sized businesses, container technology can be had on the cheap. Of course, if you add Kubernetes into the mix, there's a significant learning curve involved.

Additional resources:

Who do containers affect?

Containers affect IT pros (in their ease of use), end users (in their remarkable scope of service and reliability), and business owners (because they can save precious IT budget).

More specifically, any business looking to grow its web presence by offering more and better services, or any company looking to empower its employees with Software as a Service, will be affected by containers. When companies have the ability to quickly roll out new applications or updates to existing applications, clients and end users also gain serious benefits.

Additional resources:

When are containers happening?

Containers have been in play for quite some time and will only continue to grow in scope, scale, and importance. If your company is not already using this incredibly flexible and extensible technology, you are behind the curve. According to Gartner, by 2023, more than 70% of global organizations will be running more than two containerized applications in production, up from less than 20% in 2019.

Additional resources:

How do I start using containers?

If you're interested in using containers, the first thing you must do is familiarize yourself with a tool such as Docker. In order to do that, you'll want to have a fundamental understanding of Linux and how to write container manifests in JSON. You'll also want to familiarize yourself with Kubernetes, as you'll have a much easier time scaling your container deployments with that container management platform. Without understanding the foundational tools, you won't be able to make use of what will probably be one of the most important pieces of your company's technology puzzle moving forward.

Once you have those technologies under your belt, you will be able to easily get Docker up and running in order to start deploying your containers.

Additional resources:


Image: iStockphoto/Wavebreak Media LTD