Docker is an open source application container engine. What docker can do: 1. Quickly build a development environment; 2. Simulate the production environment; 3. Automatic testing; 4. Self-deployment; 5. Continuous integration. (Continuous deployment); 6. Manage all services on a single machine; 7. Expand QPS, etc.
The operating environment of this tutorial: linux5.9.8 system, docker-1.13.1 version, Dell G3 computer.
What is docker?
Docker is an open source application container engine that allows developers to package their applications and dependencies into a portable image and then publish it to any popular Linux or Windows operating system Virtualization can also be implemented on the system's machine. Containers completely use the sandbox mechanism and will not have any interfaces with each other.
What can docker do?
1. Quickly set up a development environment
Do you need to quickly try Magento on your local system, or use MySQL for a project? Or want to try out most open source projects? Then use Docker, it will save you a lot of time. Docker can improve developers' development efficiency and allow us to quickly build a development environment.
The machine in the development environment usually has relatively small memory. When using virtualization before, it was often necessary to add memory to the machine in the development environment. However, through Docker, dozens of services can be easily run in Docker.
2. Microservices
Are you using microservices? Microservices architecture – splitting a monolithic application into loosely coupled individual services.
Then consider Docker. You can package each service as a docker image and use docker-compose to simulate the production environment (checkout docker networks). It may be time-consuming and laborious in the beginning, but in the long run, it will ultimately yield huge productivity.
3. Automated testing
Imagine the question, how to write automated integration test cases that do not take a long time to start running , users can also manage it easily.
This does not refer to running test cases in Docker, but to running test cases closely with the image. There is a big advantage when you write test cases against a docker image. Here is a brief introduction to my testing process: run two docker images (app db), load data when MySQL starts, and use the API on the app docker.
4. Self-deployment
You can use docker images for self-deployment. Many major hosting providers support hosted docker, and if you have a dedicated node/vm with shell access, things will be easier. Just set up docker and run your image on the port you want.
5. Continuous Integration/Continuous Deployment(Continuous Deployment)
It is said that Docker is naturally suitable for continuous integration/continuous deployment. When Docker is used in deployment, continuous deployment will become It's very simple and will start over after entering a new image.
Regarding the automation of this part, there are now many solutions to choose from, and Kubernetes is a familiar name. Kubernetes is a container cluster management system. It is an open source platform that can realize automatic deployment, automatic expansion and contraction, maintenance and other functions of container clusters.
6. Multi-tenancy environment (Multi-tenancy)
An interesting usage scenario of Docker is in multi-tenant applications, which can avoid the rewriting of key applications . If you expose application services to multiple tenants (a tenant is a group of users, such as an organization), applications designed using a single-tenant approach can quickly gain access to multi-tenant services using sub-domain docker.
An example of this scenario is developing a fast and easy-to-use multi-tenant environment for IoT applications. The basic code of this kind of multi-tenancy is very complex and difficult to handle. Re-planning such an application not only consumes time but also wastes money. Using Docker, you can create isolated environments for multiple instances of each tenant's application layer, which is not only simple but also low-cost. Of course, this all benefits from the startup speed of the Docker environment and its efficient diff command.
7. Multiple apps from one machine
This is somewhat related to the microservices mentioned above, but even if you don’t With microservices, just providing services, Docker can still manage all services on a single machine very well. You should use folder mounts to persist data for each data-based docker image.
8. Scaling QPS(Scaling QPS)
Docker helps you easily expand horizontally by creating another container. If you encounter huge peak traffic, Docker can help you solve the problem - just add more machines and increase the number of containers running behind the load balancer.
What are the benefits of using docker
1. Simple and easy to operate, simplifying the previous complex application installation steps, using docker will become very simple.
2. It is compatible with a variety of applications. Web applications, background applications, database applications, big data applications such as Hadoop clusters, message queues, etc. can be packaged into mirrors for deployment.
3. Save money Docker combined with cloud can achieve high performance and low price
Recommended learning: "docker video tutorial"
The above is the detailed content of What is docker? What can be done?. For more information, please follow other related articles on the PHP Chinese website!