It is an application development platform that wraps a piece of software in a complete file system. It packages an application into a deployable unit with all its dependencies. It contains everything that an application requires to run including runtime environment, system tools, and libraries. With all the required components, the application guarantees the same behaviour regardless of the environment where it is running.
It lets you quickly assemble applications from its components and eliminates the rasping while shipping and deploying code. With Docker, you can test and deploy your application into production in the fastest possible way. The core features are described below.
- It allows deploy and scale software applications more easily.
- It has containers that run on almost each platform. Docker containers can be deployed on desktops, physical servers, virtual machines, data centres, and clouds as well.
- It allows you to move your application from a testing environment into the cloud or production and whenever you require.
- It is light weight; therefore, scaling up and down is fast and easy.
- It allows you to quickly launch more containers when needed and then shut them down easily when they’re no longer needed.
- It does not need hyper-visor and allows you to run more workloads on hosts.
- It allows you to easily make lots of small changes instead of huge, big bang updates. Therefore, smaller changes mean reduced risk and more uptime.
- It runs containers in isolation from each other. Therefore, one application cannot disturb another application.
The Docker engine is responsible for creating and running Docker containers. It is a lightweight and powerful open source container that enables virtualization for building and shipping software applications. Containers have similar resource isolation and allocation benefits as virtual machines. However, containers use different architectural approach for enabling resource isolation and allocation that offer more efficient use of resources in comparison to virtual machines.
Docker Hub is the cloud-based repository. It enables building and shipping service containers or applications. Using Docker Hub, programmers can host and manage Docker images. In addition, it offers a centralized resource for managing container images, distribution and change management, workflow automation, and team collaboration.
Core features and functions of the hub repository are described as follows.
- Image Repositories: Allow you to manage, find, push and pull images from community, official, and private image libraries.
- Automated Builds: Accommodate changes automatically and creates new images whenever you make changes to a source GitHub or Bit bucket repository.
- Web hooks: Allow programmers to trigger actions after a successful push to a repository.
- Organizations: Allow to manage access of image repositories by creating groups.
- GitHub and Bit bucket Integration: Allow programmers to add the GitHub and Docker images to the current workflows.