Sunday, May 7, 2017

What is Docker?



“ It works on your computer. So why is it not working on my computer? ”

 This is a familiar problem with all computer users. Is there a way to solve this problem? Yes. Have you heard about Docker? Docker is the world’s leading software container platform which supports to eliminate this problem. Let’s get to know about Docker.


As earlier says, Docker is the world’s leading software container platform which is used by developers and system administrators to get better compute density. Docker is used by them to run and manage apps side-by-side in isolated containers.

What is a container?


An accomplishment of several requirements is needed to run a software. An image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it. So it contains code, runtime, system libraries, system tools and settings. A container is a runtime instance of an image. It isolates a software from its surroundings and that software will always run same in each time regardless of the environment.

Characteristics of container


Lightweight


Docker container is running on a single machine which shares machine's operating system kernel. It starts instantly and use less computational power and RAM. Images are constructed from file system layers and share common files. This minimizes disk usage and image downloads are much faster.

Secure


Docker container isolates application from one another application and from the underlying infrastructure. It limits app issues to a single container instead of the entire machine.

Standard


Containers are based on standards and run on all major operating systems.

Comparison of Containers and Virtual Machines


Abstraction of Container and virtual machine


All of them have similar resource isolation and allocation benefits. But they function differently. Containers virtualize the operating system instead of hardware and it is more portable and efficient.

Containers


Containers are an abstraction at the app layer that packages code and dependencies together. Multiple containers can run on the same machine and share the OS kernel with other containers. At that time each container running as isolated processes in user space. Containers take up less space than Virtual machines. Containers are typically small in size and start almost instantly.

Virtual Machine


Virtual machines are an abstraction of physical hardware turning one server into many servers. The hypervisor allows multiple Virtual machines to run on a single machine. Each Virtual machine includes a full copy of an operating system. Virtual machines are typically small in size and slow to boot.


How Containers Simplify the process?


When the app is dockerized, app user doesn’t have to install and configure complex databases. That complexity is pushed into containers. So application is easily built and run. Dependencies of the application are packaged inside docker image. Anyone who installed Docker and its editor can build and debug the app in minutes.






No comments:

Post a Comment

How to send Slack notification using a Python script?

 In this article,  I am focussing on sending Slack notifications periodically based on the records in the database. Suppose we have to monit...