It accomplishes this by packaging components and their dependencies into standardized, lightweight process environments called Docker containers.
Docker containerization is especially useful in distributed systems, where there is a need to scale automatically, based on configuration profiles and resource utilization.
After 3 years, a lot of software has been developed around this containerization platform. See diagram below.
Containers v. VMs
Containers are much lighter than VMs.Whereas VMs require a separate, entire guest operating system for each VM, Docker containers only require a single Docker Engine per workstation and all that is packaged in the container are the applications and their direct library dependencies.
Development/Deployment Implications
Now, we're finally able to configure develop our microservices in a Docker container in our local development workstation.We can tune our apps locally and have confidence that our deliverables that are deployed via our continuous integration and continuous deployment processes are consistent with our dev environment.
References
This work is licensed under the Creative Commons Attribution 3.0 Unported License.