What is a container?
- A container run-time instance of . is an executable package everything needed to run an application.
- the code
- a run time
- environment variables
- and confirmation files
Making a container using an image for any application containerization. Docker is widely containerize our application.
- Containerization is increasingly popular because containers are;
- Flexible (Even complex applications containerized)
- Lightweight (Containers leverage and share the host kernel)
- Interchangeable( deploy updates and upgrades on the fly)
- Portable(We can build locally, deploy to the cloud, and run anywhere).
- Scaleable (We can increase and automatically distribute container replicas)
- Stackable ( stack services vertically and on the fly).
- Container technology is also just a container, method to package an application so it run, with its dependencies, isolated from other processes.
- For time, web-scale players like Google using container technologies these shortcomings of the VM model.
- In the container model, the container is roughly analogous to the VM. difference though, is container require a full-blown OS.
- In fact, all containers on host share OS. This frees up huge amounts of system resources CPU, RAM, and storage. It also reduces potential licensing costs and reduces the overhead of OS patching and other maintenance. This savings on the cap-ex and op-ex fronts.
Containers fast and ultra-portable. Moving container workloads from your laptop, to the cloud, to VMs or bare metal in your data center breeze.
Major difference between containers and VM model
Single OS: All containers on host share OS
Less hardware resources: This frees up huge amount of system resources CPU,RAM, and storage.
Types of Container
Containers technology phenomenon, and long has been a core for Linux. The advance in recent years of container technology become easier to use, and software developers have embraced them simplicity, and avoiding compatibility problems.
They also enable a program to be into smaller pieces, which are micro services. one example, Google inc. has contributed many container-related technologies to the Linux Kernel.
Google alone, individual developers have contributed to Linux kernel. Without these contributions, we wouldn’t have modern container today.
Over the past few years, Microsoft Corp. has worked extremely hard to bring Docker and container technologies to the windows platform.The core windows technologies required to implement containers are collectively as Windows containers.
The user-space tooling with these windows containers is Docker. This makes the Docker experience on Windows almost same as Docker in Linux. In developers and sysadmins the Docker- tools from the Linux platform will feel using windows container.
Important to note:
It’s vital that a running container uses the kernel of the host machine running on.
This means that a container designed to run on with a Windows kernel run on a Linux host.
This means can it like this at a high level-Windows container require a Windows host.
However, possible to run Linux containers on windows machines. , Docker for windows ( a product offering from Docker Inc, designed for windows 10) can switch modes between Windows containers and Linux containers.
- A container image may be a lightweight, stand-alone, executable package of software that has everything needed to run an application:
- Run time
- System Tools
- System libraries
- Images become containers once they run on Docker Engine.
- Images are made from multiple layers that get stacked on top of every other and represented as one object.
- inside the image may be a cut-down operating system(OS) and every one of the files and dependencies required to run an application.
- during this way, each layer contains various things required to run a containerized app.
- Common layers among different images are downloaded on just one occasion and are stored on just one occasion and obtain re-use altogether images.
- You build container-supported images which are why images are sometimes called stopped containers.
- You’ll also create images from actually stopped containers.
- Once a container is up and running made up of a picture, the 2 constructs become hooked into one another and you can’t delete the image until the last container using it’s been stopped and destroyed. The whole purpose of the container is to run an application.
- However, containers are about to be fast and lightweight weight. This means that the pictures they’re built from are usually small and stripped of all non-essential parts.
- The official Alpine Linux Docker image is about 4MB in size and is an extreme example of how small Docker images are often. Official Ubuntu Docker image which is currently about 120MB. These are clearly stripped of most non-essential parts.