What is Docker and its advantages
Introduction to Docker
Importance of docker in software development practices
Prior to go directly into Dockers importance what is concept of a container. Container is a concept that contain the application build in itself. That container contains all the settings software configuration and other stuff that is easily portable from one machine to another machine. Anyone can install Docker daemon on his machine and deploy that docker container very easily just by importing the container.
As soon as we import the container it automatically install all the necessary software that is required for that application. It doesn’t only save networking cost but also gives a flexibility to run any number of container on docker. That’s why Docker plays important on not only in application testing on every environment uniformly but it also resolved the problem to “Verify it in my environment”
In the nutshell below are some of the major relief.
- Application can be easily deployed with all configuration settings very easy.
- Run any number of container on Docker
- Export and Import container easily
- Resolve “Verify it in my environment” problem
Who all are using Docker
- BBC News
- many more global leaders
Simple Case Study: Verify it in my environment
Suppose we need do regression testing of any website then, to ensure proper working on various different environment for example various browsers on linux, windows or mac.
Create different multiple virtual machines one for linux, one for windows , one for mac etc..
Problem with current solution:
What is the issue to go with virtual machine based solution. and the answer is simple that its costly solution (in terms of getting multiple VMs, multiple licenses, installation etc..)
Advantage of using Docker
- Replacement of multiple VMs.
- No licensing cost for different machine or OS
- Its lightweight
- Its Open Source alternative for virtualization
- You can easily export application and import it anywhere else locally (through docker registry) or through internet (through docker hub)
Typical architecture of a machine with Docker based app development
Note: Here its notable that only top layer of is writable other layers are read only. For example
Docker is available in two edition
- Community Edition: Which is open source, free to deployment on any server. It has container engine with network and security. It is for small team who is looking to get started with docker and get started with it.
- Enterprise Edition: Docker Enterprise edition is for large team who run, build and ship large and critical application.
In this article we will focus on Docker CE version only.
Docker installation on Windows
Go to https://store.docker.com/editions/community/docker-ce-desktop-windows and click on “Get Docker” link it will download “InstallDocker.msi” file from there. Just download and double click on it. You are done.
Running from command line:
When the installation finishes, Docker starts automatically. The whale in the notification area indicates that Docker is running, and accessible from a terminal. Just run the command to test the docker from command line.
Will see next article soon that will give you hands on experience.