Docker is an open platform for developing, shipping, and running applications.
In lay mans language i would define docker as a platform that enables you build once and deploy everywhere.Docker enables you to separate your applications from your infrastructure, therefore you wont have to set up all the dependencies your apps need all over again and again as you migrate between different environments
Before proceeding further it is important to highlight some important concepts that you will commonly hear of in the docker world .This are:
Docker Image
A Docker image is a lightweight, standalone, executable package of software .For example we have a mysql
image which includes everything needed to run mysql: code, runtime, system tools, system libraries and settings
Docker Hub
The hub is a repository where container images are stored. You can get public images as well as store your own private images.
Docker Container
Docker Container is a layer of images .
Docker images become containers when they run on Docker Engine.
Docker Engine
Docker Engine is the runtime environment for all containers. Docker engine can be used in both linux and windows based infrastructure. A docker application can easily be run in any environment as long as there is a docker engine.
This solves the “dependency hell” for developers and operations teams, and eliminating the “it works on my laptop!” problem.
The Difference between Docker And Virtual Machines
Before understanding the difference between Docker and Virtual machines its important to understand Operating systems. Operating systems have an application and kernel layer
Docker
virtualizes the application layer and use the kernel of the host while a virtual machines virtualizes both application
& kernel
layer.
Docker
size is small a couple of megabytes while a virtual machine
size is large a couple of gigabytes .
Docker
is faster while a virtual machines
size is slower.
Top comments (0)