DevOps
(Devops Jun2023) DOCKER Series - I
We are presenting a three (3) part series on Docker. In part 1 we will start with some salient points; pros and cons of Docker and in subsequent part practical commands to build and deploy Docker. So what is Docker? A simple answer is that Docker is an opensource centralized platform designed to create, deploy, and run applications.
Docker Salient Points
- Docker uses container on the host OS to run applications. It allows applications to use same Linux kernel as a system on the host computer rather than creating a whole virtual OS.
- We can install docker on any OS but docker engine runs natively on Linux distributions.
- Docker is written in "GO" programming language.
- Docker performs OS level virtualization also known as Containerization.
- Docker offers consistency since, before docker many users faced code run inconsistency from one environment to other.
- Docker was first released in March 2013. It was developed by Solomon Hykes and Sebastian Pahl.
- Docker is a set of Platform-as-a-Service that uses OS level virtualization whereas VMWare uses hardware level of virtualization.
Advantages of Docker
- Costs less and is light weight, it does not require pre allocation of RAM.
- Efficient and Reusability; a Docker (container) image is re-usable throughout a deployment.
- Docker is Portable meaning it can run on physical or virtual hardware or on cloud.
- Docker build to deployment times are fast.
Disadvantages of Docker:
- Docker is not a good solution for GUI rich applications.
- Difficult to manage large number of containers.
- Docker doesn't provide cross platform compatibility, that is if an application is designed to run in a docker container in windows than it can't run in Linux or vice-versa.
- Docker is suitable when the development O.S and testing O.S are same. If the O.S are different then we should use VM.
- No solution for data recovery and backup