Strong isolation
A large-scale application is split into dozens of microservices, which are developed by different teams, and the level of different teams varies.
After using the docker container, Docker can package our application into a container.
The container contains necessary resources such as application code, operating environment, dependent libraries, configuration files, etc.
The isolation between containers reaches the process level, and the operations in the container will not affect the host and other containers,
So there will be no mutual influence between applications!
Portability
After using the docker container, the development, testing and production environment can be unified and standardized.
As a standard deliverable, the image can be run as a container in the development, testing, and production environments,
And finally achieve the complete consistency of the applications on the three environments and the content that they rely on for operation.
In the current microservice architecture, an application is divided into dozens of microservices, and each microservice corresponds to three sets of environments for development, testing, and production.
Lightweight and efficient
Compared with the virtual machine, the container only needs to encapsulate the application and the dependent files required by the application,
realizing a lightweight application operating environment, and having a higher utilization rate of hardware resources than the virtual machine.
In the microservice architecture, some services are under heavy load and need to be deployed in clusters, which may be deployed on dozens of machines.
For some small and medium-sized companies, the use of virtual machines is too costly.
If we use docker, the same physical machine can support thousands of containers, saving money for small and medium-sized companies!