Containers and images

Anatomy of a CNF - Part 1 shows how the term CNF is becoming commonplace within the telecommunications industry. A CNF comprises one or more containers and other elements that we will look at in the future. Let's continue the conversation by asking, "What is a container?" and "How is a container different from a virtual machine (VM)?"

Let's begin with a virtual machine since it's easier to understand. As an analogy, when you think of a virtual machine, I want you to think about a computer. You're reading this blog using a computer or smartphone browser. For our analogy, let's assume you're using a browser on a computer with an operating system, hardware, networking, and the browser's software. To understand a virtual machine, think of your computer. The VM has an operating system, virtual hardware (sharing the hardware of the host running the VM), networking, and software running on the operating system.

A container is different. When you think of a container, I want you to think of something closer to a software application. So, in our analogy, a container would be your browser software. However, this isn't the whole story because all software uses binary files and libraries to support the execution of the software. An example of a binary file is the operating system's driver that interacts with the disk drive or a driver that performs networking functions like creating a TCP socket. A library might support the application's software, like a graphical user interface. Those binary files and libraries might include the software itself, or the software may use them in the computer the software runs on. So, we can think of a container as software and any required binaries or libraries.

For now, we'll avoid much of the complexity. Still, the critical point is that developers of CNFs create container images composed of the software and the required binaries and libraries. Some cases require the deployment of a binary or library into the host running the container to make it available to the container.

Let's assume we've written a Python program, and the software in this graphic is the .py file with the Python code. Python requires a Python interpreter, which is an excellent example of a binary that would be required. Let's also assume we're using publicly available libraries; then, the libraries in this image would be the required libraries that may do some advanced calculations or graphics.

Now that we understand the VM, let's address our other question, "What is a container image?" A container image is the packaging of software and required binaries and libraries for easy distribution and deployment. Many tools like Docker, Podman, and Buildah are available to help create a container image.

Part 3 of Anatomy of a CNF explores where we can store a container image, making it deployable in an operator's network.

 

Chris Reece, Technologist, Award Solutions, Inc.

Chris Reece works with leading global service providers, transforming networks and empowering individuals in 5G, Virtualization/Containerization, and Machine Learning/Artificial Intelligence. Service providers rely on Chris to paint both the big picture and the business impact of technology and appreciate his enthusiasm for getting into deep, detailed discussions when needed. You may have seen Chris on Award Solutions' YouTube Channel. In addition, Chris is featured at leading telecom conferences worldwide, including MWC, and in publications like IEEE Spectrum and DZONE.

Chris holds a master's degree in Computer Science Telecommunications from the University of Missouri at Kansas City and a bachelor's degree in Computer Science and Mathematics from Cameron University. He also holds four patents in wireless technologies.