Docker is a software platform for building applications based on containers small and lightweight execution environments that make shared use of the operating system kernel but otherwise run in isolation from one another. Docker is an open source project that makes it easy to create containers and container-based apps. Originally built for Linux, Docker now runs on Windows and MacOS as well, Docker helps developers build lightweight and portable software containers that simplify application development, testing, and deployment.
Containers, by contrast, isolate applications’ execution environments from one another, but share the underlying OS kernel. They’re typically measured in megabytes, use far fewer resources than VMs, and start up almost immediately. They can be packed far more densely on the same hardware and spun up and down en masse with far less effort and overhead.
Each Docker container starts with a Dockerfile. A Dockerfile is a text file written in an easy-to-understand syntax that includes the instructions to build a Docker image (more on that in a moment). A Dockerfile specifies the operating system that will underlie the container, along with the languages, environmental variables, file locations, network ports, and other components it needs—and, of course, what the container will actually be doing once we run it
Docker image is a portable file containing the specifications for which software components the container will run and how.
Docker Hub is a SaaS repository for sharing and managing containers, where you will find official Docker images from open-source projects and software vendors and unofficial images from the general public. You can download container images containing useful code, or upload your own, share them openly, or make them private instead.
Docker Engine is the core of Docker, the underlying client-server technology that creates and runs the containers. There are two different versions of Docker Engine on offer: Docker Engine Enterprise and Docker Engine Community.
Advantages of Docker
- Return on Investment and Cost Savings
- Standardization and Productivity
- CI Efficiency
- Compatibility and Maintainability
- Simplicity and Faster Configurations
- Rapid Deployment
- Continuous Deployment and Testing
- Multi-Cloud Platforms