Introduction to Containers
Red Hat Enterprise Linux (RHEL) is a rock solid commercial grade Linux operating system. If you're interested in learning RHEL from a system admins perspective then this course is for you!
The "Red Hat Enterprise Linux Technical Overview" course walks you through many of the basic system admin tasks and concepts required to administer RHEL effectively.
This course will provide you with insights to:
- Working with the Terminal
- Understanding the Kernel and User Spaces
- Graphical User Interface
- File management and the File System Hierarchy
- Editing Files using Vim
- Organizing Users and Groups
- File Permissions
- Managing Software
- Configuring Networking
- Controlling System Startup Processes
- Introduction to Containers
- Overview of Cockpit
Hey guys! Right now we are going to talk about Containers or Linux Containers more specifically.
And they contain applications in such a way that they're isolated from the rest of the system that they're running on.
So they contain things, right?
Like the application source code, the application runtime and all the needed libraries.
But they are portable.
So we can take the things that make up application. In other words, the container.
And we can transplant that transparently to another place where you can run containers. We have a virtual machine and on that virtual machine we have the application runtime in red, we have the libraries that are needed by the application. So we have libA1 we have libB1 as well. And then we have the application code for application X. Now on that same virtual machine we need to go and run another application and we are introducing application Y with this application code.
Yeah there we go application Y. Now fortunately application Y makes use of the same application runtime. So we already have the needed application runtime. Application Y also works with LibA1. However, application Y needs LibB2. Now in this case over here. You can't have LibB1 and libB2 installed on the same machine.
They are going to create a conflict so what could happen is that if you upgrade libB1 and libB2, it would result in application Y working but it would break application X. So what containerization allows us to do is to deploy an application in such a way that we have a container over here and inside of that container, we would have the application runtime, we would have it's needed libraries and here we would have the application code for the for the pink application this is application Y. Now in a completely separate container what we'll have right now is the same application runtime but in a different container. We would have its libraries.
And the cool thing about this right now.
Is that they could coexist on the same machine. Both containers could run right now on that particular virtual machine. So what we're doing is that we are scrapping this legacy framework over here and we are moving towards a more containerize framework.
And this is where we would find a lot of organizations: migrating applications because containerization does introduce a degree of flexibility rather.
In order for you to run a container and you need a container run time and a container image. Pod man is a container run timer. It's an example of a container run time and a management tool that allows us to run containers in a much more efficient way than docker. If you want to build container images you could use a tool called buildah. So this is a tool that we used to to build container images. We also have another tool called skopeo. And skopeo could be used to to copy container images you could use skopeo as well to inspect the metadata that is associated with a container image. Apart from creating your own container images. You may have a question well. I'm new to this I want to get started with containers. Where do I go and get images that have been pre-built.
Well at Red Hat we have the Red Hat container catalog. And where you would go to access that would be access.redhat.com/containers.
So if you're looking for a container image for example for mysql, just go and enter in mysql into the search. So you can see we have a number of container images that we are providing you could always go and click on a container image to get more information about it. But guys again this is merely an introduction. Now if you wanted to install the tools that I've just described right now. They're all a part of a package called container- tools.
So what you could do is that you can make use of the yum module install command to install that particular package module. So guys this is merely an introduction to containers. And what containerization is all about.
A lot of companies are moving away from that older legacy way of deploying applications. And they are looking at containers to provide applications right now.
About the Author
Jeremy is the DevOps Content Lead at Cloud Academy where he specializes in developing technical training documentation for DevOps.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 20+ years. In recent times, Jeremy has been focused on DevOps, Cloud, Security, and Machine Learning.
Jeremy holds professional certifications for both the AWS and GCP cloud platforms.