Sunday, September 6, 2020

What is Docker Daemon?

 The Docker Engine has a client-server setup where can client can fire commands and the Server processes the commands to create and maintain live Docker Containers.

Docker Daemon is the server-side of the Docker Engine, all running Docker Containers are managed by the Docker Daemon. Docker CLI and API are the client-side of the Docker Engine which sends commands to the Docker Daemon. A daemon can also communicate with other daemons to manage Docker services.



What is a Docker Image?

 A Docker Image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries, and settings. A Container image is a static template version of a Docker Container, it is stored in the Docker registry. 

Container images become containers at runtime and in the case of Docker containers - images become containers when they run on Docker Engine.

When we execute the $ docker run command the container image is fetched from the registry and loaded in the Docker Daemon server to make it a live executing container.

Thursday, September 3, 2020

What is a Docker Container?

When we develop an Application and move it between various environments QA, Staging, Production etc, we need to take care of various environmental factors like Operating System version, security patches, network configuration etc. When there is any deviation in these settings the application starts behaving differently and becomes difficult to identify the cause.

Containers help us make this easier, Containers are an abstraction at the app layer that packages code and dependencies together. A Container packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.

Multiple containers can run on the same machine and share the OS kernel with other containers, each running as isolated processes in userspace. Containers take up less space than VMs.

Docker Container vs Virtual Machine

A Virtual Machine is an image that runs on top of a physical server. We can create multiple Virtual Machines on top of a physical server. Each Virtual Machine needs a Guest operating system to function, this makes is heavier since each Guest OS needs Memory, Disk, and CPU to operate. 

A Docker Container can be seen as the next version/improvement to a Virtual Machine. Each Virtual Machine in a server needs a separate Guest operating system to function, but all the Docker Containers in a server use the same underlying Operating System of the server, hence Dockers are lightweight when compared to Virtual Machines. Also, Dockers are faster to spin up and execute when compared to Virtual Machines.

Since each Docker containers don’t need a separate Operating System we can spin up many Docker Containers in a server then the number of Virtual Machines it can handle.

What is Docker?

Docker is an open platform to create, deploy and run applications by using Containers. Docker makes is easy to deploy applications from one environment to another. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and deploy it as one package.

Docker can be seen as an improvement to a Virtual machine. Each Virtual Machine in a server needs a separate Guest operating system to function. All the Docker Containers in a server use the same underlying Operating System of the server, hence Dockers are lightweight when compared to Virtual Machines. Also, Dockers are faster to spin up and execute when compared to Virtual Machines.

The Docker platform contains the following components