Scott McCarty

Recent Posts

A Practical Introduction to Container Terminology

You might think containers seem like a pretty straightforward concept, so why do I need to read about container terminology? In my work as a container technology evangelist, I’ve encountered misuse of container terminology that causes people to stumble on the road to mastering containers. Terms like containers and images are used interchangeably, but there are important conceptual differences. In the world of containers, repository has a different meaning than what you’d expect. Additionally, the landscape for container technologies is larger than just docker. Without a good handle on the terminology, It can be difficult to grasp the key differences between docker and (pick your favorites, CRI-O, rkt, lxc/lxd) or understand what the Open Container Initiative is doing to standardize container technology.

Background

It is deceptively simple to get started with Linux Containers. It takes only a few minutes to install a container engine like docker and run your first commands. Within another few minutes, you are building your first container image and sharing it. Next, you begin the familiar process of architecting a production-like container environment, and have the epiphany that it’s necessary to understand a lot of terminology and technology behind the scenes. Worse, many of the following terms are used interchangeably… often causing quite a bit of confusion for newcomers.

  • Container
  • Image
  • Container Image
  • Image Layer
  • Registry
  • Repository
  • Tag
  • Base Image
  • Platform Image
  • Layer

Understanding the terminology laid out in this technical dictionary will provide you a deeper understanding of the underlying technologies. This will help you and your teams speak the same language and also provide insight into how to better architect your container environment for the goals you have. As an industry and wider community, this deeper understanding will enable us to build new architectures and solutions. Note, this technical dictionary assumes that the reader already has an understanding of how to run containers. If you need a primer, try starting with  A Practical Introduction to Docker Containers on the Red Hat Developer Blog.

Continue reading “A Practical Introduction to Container Terminology”

Share

Red Hat Container Development Kit (CDK) With Nested KVM

Why

If you are like me, you probably prefer to install new and exploratory software in a fresh virtual machine (VM) or container to insulate your laptop/desktop from software pollution (TM). Red Hat Container Development Kit (CDK) relies on virtualization to create a Red Hat Enterprise Linux (RHEL) virtual machine to run OpenShift (based on Kubernetes). Red Hat specifically supports installation of the CDK on Windows, macOS, and RHEL Server, but if you are running Fedora, RHEL Workstation, or even CentOS, you will run into trouble. If you are not running a supported desktop, you can always use a RHEL Server virtual machine, and this tutorial is for you.

Continue reading “Red Hat Container Development Kit (CDK) With Nested KVM”

Share

Why Infrastructure Parity Matters for Developers Too

Background

I’ve been working with the CTO of an online video game company to develop a container architecture for his business. The goal is to simplify the deployment of new applications as well as make it easier to go back and change the code on older applications. The desired state is environmental parity across the infrastructure — this will simplify the assignment of work on different applications to different developers. From developer laptops to production servers, the code will just work!

While video game production has unique technical and business requirements, infrastructure parity from developer laptops to production servers is a common desire that touches every industry that relies on application delivery.

Continue reading “Why Infrastructure Parity Matters for Developers Too”

Share

3 Reasons I Should Build My Containerized Applications on RHEL and OpenShift

Red Hat has always given operations teams value in deploying Red Hat Enterprise Linux (RHEL), and that’s no different in a containerized world.  But, as a developer, why should I build on RHEL? Does the underlying operating system really affect me?

It might if you want to:

  1. get your app to production faster
  2. work on new products, not maintain old ones
  3. avoid compatibility issues at scale

(And yes RHEL is available at no cost for development use.)

Continue reading “3 Reasons I Should Build My Containerized Applications on RHEL and OpenShift”

Share

A Practical Introduction to Docker Container Terminology

February 2018 – A completely revised and updated version of this article has been published.  See A Practical Introduction to Container Terminology. The update includes coverage of container technologies beyond docker, such as CRI-O, rkt, lxc/lxd, and as well information on the Open Container Initiative (OCI).

 


 

January 13th, 2016

Background

When discussing an architecture for containerization, it’s important to have a solid grasp on the related vocabulary. One of the challenges people have is that many of the following terms are used interchangeably… often causing quite a bit of confusion for newcomers.

  • Container
  • Image
  • Container Image
  • Image Layer
  • Index
  • Registry
  • Repository
  • Tag
  • Base Image
  • Platform Image
  • Layer

 

The goal of this article is to clarify these terms, so that we can speak the same language and develop solutions and architectures leveraging the value of containers. Note that I am going to assume that you know how to run basic docker commands, but if you need a primer, I recommend starting with: A Practical Introduction to Docker Containers.

Continue reading “A Practical Introduction to Docker Container Terminology”

Share

Repost – Architecting Containers Part 3: How the User Space Affects Your Application | Red Hat Enterprise Linux Blog

In Architecting Containers Part 1 we explored the difference between the user space and kernel space.  In Architecting Containers Part 2 we explored why the user space matters to developers, administrators, and architects. In today’s post we will highlight a handful of important ways the choice of the user space can affect application deployment and maintenance.

Continue reading Repost – Architecting Containers Part 3: How the User Space Affects Your Application | Red Hat Enterprise Linux Blog

Share

Can't We Just Run Boot2Docker in Production?

Background

I’ve been working with the CTO of a online video game company to develop a container architecture for his business. The goal is to simplify the deployment of new applications as well as make it easier to go back and change code on older applications. The desired state is environmental parity across the infrastructure — this will simplify the assignment of work on different applications to different developers. From developer laptops to production servers, the code will just work!

Continue reading “Can't We Just Run Boot2Docker in Production?”

Share