- [Instructor] Let's go over container technology.
And a lot of people think
that containers are just Docker containers.
There's a whole bunch of different technologies
that can provide containerized environments.
And basically what a container is,
is a standard unit of software
that package up code and all the dependencies,
so the applications actually can run very quickly,
reliable, and in an isolated way.
And at the end of the day,
what it is, is a zip file, right?
It's a tar file, it's a compressed file
that includes those components.
Now yes, one of the most popular container technologies
out there is Docker, right?
And we're gonna go over that in a second.
But if you compare virtual machines,
the traditional virtual machines and containers,
you see that in order for you to run virtual machines,
you need a hypervisor.
Either a Type 1 hypervisor
that is in bare-metal,
or a Type 2 hypervisor
that basically runs on top of another operating system.
Right, so in this diagram,
you see a few things that where virtual machines
of course can run different types of applications,
including the full guest operating system.
So it can be Windows, it can be Linux, and so on.
Then you have binaries and libraries on top of it.
And of course, applications running on top of each VM.
So each of the circles that I'm highlighting here
are basically separate VMs.
Now, if you look to the right,
basically in containers,
you do not need a hypervisor.
Basically run an operating system like Linux,
and then a container engine.
That container engine can be something like LXC,
or it can be a Docker.
It can be something like Rocket,
which is another technology.
And basically you run your applications and your libraries
and your dependencies and everything
within that environment,
in an isolated environment.
Now within containers basically they have name spaces
and that concept of name spaces is what basically
allows you to do that isolated environment.
Now, there is a very good resource within docker.com
that I'm gonna share with you in a second.
Right here.
And where it goes over what is a container
and the different container standards
and industry specifications,
especially around the Cloud Native Computing Foundation
or the CNCF on where there's an environment
called the Open Container Initiative, or the open IOC.
And if you want to learn more
about the open IOC and specifically about Container D,
which is the underlying technology
that is a product of that effort,
you can actually click on this link
and go to containerd.io.
And as a matter of fact,
there's a lot of extensive documentation
about containers and so on.
Now, one of the best ways to learn
about container technologies of course,
is by using it.
And within the websploit environment
that I have been using throughout the class,
you have intention of vulnerable applications
running in Docker containers, right?
So the Docker engine is actually installed
and you can do a Docker PS,
and see all the different containers
that actually are running.
You can do things like Docker images.
And see all the images that are within your environment
and have a little bit more
than what you probably have in your environment.
You can do a Docker version,
and see the version of the Docker engine.
And of course, the underlying architecture
and the underlying infrastructure.
Now, another really cool way to learn
about container technology is to take advantage
of the free Katacoda environments
that assists at katacoda.com.
Now Katacoda is a company
that will really acquired a few years ago.
If you click on learn,
it will take you to this page.
And as you see down below,
there is a course about Docker container run times,
builders, and registers
that you can basically go through, again free,
and basically goes over, you know, what is a container?
You can start a scenario like this
and it takes you straight to an environment
that is hosted in the cloud
on where you can interact with a Docker engine.
And as a matter of fact,
you can do a lot of these things
also in websploit as well, right,
if you already have it installed.
But you can go through all the exercises.
And of course, in this case,
it's actually in instantiating a container
that is running a ready server.
But it you know, it's a really good learning environment,
an interactive learning environment
because whenever it comes to technology like this
the more that you practice,
the better that you will become, right?
Now if you go actually back
to all the different scenarios you have,
you know of course, what is a container image,
different foundations about Docker,
running containers department with Podman, RunC,
and a running containers directly in RunC.
It goes over what is actually RunC, and so on.
So definitely take advantage of these resources.
In the next lesson,
you're gonna be going over
different concepts about serverless computing.
And later in the course,
you're gonna be learning about Kubernetes
and also several exercises in here
related to deploying a Kubernetes cluster.