Introduction
Docker is a platform for developing, shipping and running applications using container Hypervisor-based virtualization technology.
Docker allows you to package an application with all of its dependencies into a standardized unit for software development.
Docker containers wrap up a piece of software in a complete file system that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.
You can run a single service per container. Let's say one container for sql , one container for web application.

Virtual Machine
- Virtual machine consume more resources, RAM and disk space.

(Source : docker.com) - The Container
a. The container is a hypervisor based virtualization technology.
b. It includes the binaries to run the application (all of its dependencies ) and they share the kernel with other containers.
(Source : docker.com)
There are numerous reasons for its popularity
- Ease of use: Docker is designed in such a way so that developers, architects and administration can take advantage of this. Docker allows you to package a application while developing that run same on production server.
- Speed:Docker ship 7x more faster than other technology because it consume less resource & memory to run application
- Lightweight: Containers running on a single physical machine all share the same operating system kernel so they start instantly and make more efficient use of RAM. Images are constructed from layered file systems so they can share common files, making disk usage and image downloads much more efficient .
- Docker Hub: Docker hub is a public repository for docker images. We can say its app store of docker images. You can create your own private docker hub by creating private repository.
- Secure: Containers isolate applications from each other and the underlying infrastructure while providing an added layer of protection for the application.
- Modularity and scalability: Docker can easily break out your application and docker images . Let's say multiple web applicationsand database servers are running, you can easily scale up and down. Docker containers spin up and down in seconds making it easy to scale an application service at any time to satisfy peak customer demand, then just as easily spin down those containers to only use the resources you need when you need it.
- Open: Docker containers are based on open standards that allow containers to run on every platform, cloud and machine.
The docker container is growing very fast.

Linux platform

Windows platform
The Docker platform:Docker platform includes
- Docker engine: Docker engine is the program that enables containers to be built, ship and run.
- Images
- Containers: Isolated application platform. Contains everything needed to run your application.
- Each container has its own.
- Root file system.
- Processes.
- Memory.
- Devices
- Network ports
- Registry
- Repositories
- Docker Hub
- Docker Orchestration tools:
Three tools for orchestration distributed application with docker.
- Docker Machine: Tool that proviosions docker hosts and install the docker engine on them.
- Docker Swarm: Tool that cluster many engine and schedule containers.
- Docker Compose: Tool to create and manage multi- container application.
Intro to Images: It is a read only template used to create containers. Built by you or other docker users. Stored in the docker hub or your local repository.
Docker images is manifest of software. It contain the binaries to run a application. Docker images are the basis of containers.
Summary
In this article I've covered an introduction of the docker platform. Build,ship and run.

Neelam SoniPosted May 25, 2016, 1:49 PM
awesome article for dummies like me, desperately wait for more
Nemi ChandPosted May 23, 2016, 4:21 AM
Vincent Maverick Durano i'm writing a series on docker and asp.net core so this is the first article on introduction to docker. this is a typo. i've updated the same.
ravi vPosted May 23, 2016, 3:38 AM
There is a typo about containers.The container is not a hypervisor based virtualization technology.
Vincent Maverick DuranoPosted May 22, 2016, 1:36 PM
Where is ASP.NET core in this context?