Docker is a platform for developers and administrators to build and run distributed applications.
In this the developer install an environment that the project using Docker engine. The developer works on the environment and once it is ready to ship to the server, the environment configuration is passed on to the IAAS provider so that the IAAS creates the environment on the developer’s behalf.
Developer worries what is inside the box whereas the IAAS providers / admins worries outside the box - how to provision the server.
Docker consists of
- Docker engine: Docker engine is a portable, lightweight runtime and packaging tool.
- Docker Hub: Is a cloud service for the developers to share applications.
Why docker:
- can quickly get started without worrying too much about the environment. The developer can also choose from 13000+ apps already available in the Docker hub than creating a new one from scratch.
- Eliminates the friction that can come when shipping code.
- Makes it easier for the sys admins to understand the environment in which the developers work on and what need to be on the server.
- Reduces “Well, it works on my machine” issue.
- helps sysadmins to deploy and run app on any infrastructure in a faster way.
- Dockers run almost anywhere - desktops, servers, virtual machines. Its easy to move an application from testing environment into the cloud and back whenever you need.