Home >Operation and Maintenance >Docker >What can docker be used for?

What can docker be used for?

藏色散人
藏色散人Original
2021-11-22 16:46:4893078browse

Docker can be used to do the following: 1. You can quickly build a development environment; 2. You can put the running environment and configuration in the code and deploy it; 3. You can use docker-compose to simulate the production environment; 4. Conduct automatic testing; 5. Use docker images for self-deployment, etc.

What can docker be used for?

The operating environment of this article: linux5.9.8 system, docker-1.13.1 version, Dell G3 computer.

What can docker be used for?

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 machine , virtualization can also be achieved. Containers completely use the sandbox mechanism and will not have any interfaces with each other.

Why use Docker?

As an emerging virtualization method, Docker has many advantages compared with traditional virtualization methods.

First of all, Docker containers can be started in seconds, which is much faster than traditional virtual machine methods. Secondly, Docker has a high utilization rate of system resources. Thousands of Docker containers can be run simultaneously on one host.

In addition to running the application in it, the container basically consumes no additional system resources, making the application performance very high and the system overhead as small as possible. The traditional virtual machine method requires 10 virtual machines to run 10 different applications, while Docker only needs to start 10 isolated applications.

Specifically, Docker has great advantages in the following aspects.

  • Faster delivery and deployment

For development and operation and maintenance (devop) personnel, the most desired thing is to create or configure once , can run normally anywhere.

Developers can use a standard image to build a set of development containers. After development is completed, operation and maintenance personnel can directly use this container to deploy code. Docker can quickly create containers, quickly iterate on applications, and make the entire process visible, making it easier for other members of the team to understand how the application is created and works. Docker containers are light and fast! The startup time of the container is seconds, which saves a lot of time in development, testing, and deployment.

  • More efficient virtualization

The running of Docker containers does not require additional hypervisor support. It is kernel-level virtualization, so it can Achieve higher performance and efficiency.

  • Easier migration and expansion

Docker containers can run on almost any platform, including physical machines, virtual machines, and public clouds , private cloud, PC, server, etc. This compatibility allows users to directly migrate an application from one platform to another.

  • Simpler management

Using Docker, only small modifications are needed to replace a large amount of update work in the past. All modifications are distributed and updated incrementally, enabling automated and efficient management.

Nine common application scenarios of Docker

1. Local Dependency

You need to quickly try Magento on your local system, or for A project using MySQL? 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. Build Environment

If you want to build the source code, but find that the appropriate environment is not prepared. Then using Docker is a solution worth considering. After all, if you use the traditional method to install software one by one, it will be very time-consuming to install a large number of software. Using container technology saves time and effort, why not?

It allows you to put the running environment and configuration in the code and then deploy it. The same Docker configuration can be used in different environments, thus reducing the coupling between hardware requirements and application environment. Here's an example worth looking at: docker golang builder.

3. 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 a 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.

4. Automated testing

Imagine the question, how to write automated integration test cases. These test cases do not take a long time to start running, and users can easily manage.

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.

5. Deployment process

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.

6. Continuous Deployment

It is said that Docker is naturally suitable for continuous integration/continuous deployment. Using Docker in deployment, continuous deployment will become very simple, and will become more and more popular when entering the new era. restart after mirroring.

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.

7. 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.

8. Multiple apps from one machine

This is somewhat related to the microservices mentioned above, but even if you are not using microservices, you just provide 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.

9. Scaling QPS(Scaling QPS)

Docker helps you easily scale 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.

Are there any application scenarios for Docker that are not mentioned in the article? You are welcome to share it with everyone~

This article was originally published on oschina. The content of the article is the author's personal opinion and does not represent the position of this site.

Recommended learning: "docker video tutorial"

The above is the detailed content of What can docker be used for?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn