Tuesday, May 1, 2018

Brief About Docker Containers

Linux container aka LXC is a copy of a Linux environment located in a file system which is like a chroot environment but uses Linux NameSpaces, runs its own seperate process, seperate file system and separate network stack which is virtualized by the underneath operating system. The underneath opearting system could be from linux or from windows.

In nutshell, we are doing Operating-system-level virtualization which is also known as containerization. The process is nothing but running multiple isolated Linux Systems (Containers) on a control host using single Linux Kernal. It also refers to an operating system feature in which the kernel allows the existence of multiple isolated user-space instances. Such instances, called containers,partitions, virtualization engines (VEs) or jails (FreeBSD jail or chroot jail), may look like real computers from the point of view of programs running in them. A computer program running on an ordinary operating system can see all resources (connected devices, files and folders, network shares, CPU power, quantifiable hardware capabilities) of that computer. However, programs running inside a container can only see the container's contents and devices assigned to the container.

What is Docker Container?
Docker is one of the most successful open source container project in recent history, and organizations of all sizes are developing plans around how to containerize their applications. Docker came in 2013, when the code, invented by Solomon Hykes, was released as open source. The docker's approach is especially for cloud applications and agile development because many different applications can run on top of a single OS instance, this can be a more efficient way to run applications. Containers speeds up applications development and testing, because software developers don’t have to worry about shipping special versions of the code for different operating systems. Because of the lightweight nature of its containers, the approach can also improve the portability of applications. Containers are an efficient and fast way to move pieces of software around in the cloud.

Difference Between VM and Container
In a VM-centered world, the unit of abstraction is a monolithic VM that stores not only application code, but often the stateful data. A VM takes everything that used to sit on a physical server and just packs it into a single binary so it can be moved around. But it is still the same thing. With Docker containers the abstraction is the application; or more accurately a service that helps to make up the application.

In a micro-services architecture, many small services (each represented as a single Docker container) comprise an application. Applications are now able to be deconstructed into much smaller components which fundamentally changes the way they are initially developed, and then managed in production.

References: SDX Central and Dockers

People who read this post also read :

No comments: