What can docker be used for?
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.
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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Four ways to exit Docker container: Use Ctrl D in the container terminal Enter exit command in the container terminal Use docker stop <container_name> Command Use docker kill <container_name> command in the host terminal (force exit)

You can query the Docker container name by following the steps: List all containers (docker ps). Filter the container list (using the grep command). Gets the container name (located in the "NAMES" column).

Methods for copying files to external hosts in Docker: Use the docker cp command: Execute docker cp [Options] <Container Path> <Host Path>. Using data volumes: Create a directory on the host, and use the -v parameter to mount the directory into the container when creating the container to achieve bidirectional file synchronization.

How to restart the Docker container: get the container ID (docker ps); stop the container (docker stop <container_id>); start the container (docker start <container_id>); verify that the restart is successful (docker ps). Other methods: Docker Compose (docker-compose restart) or Docker API (see Docker documentation).

The process of starting MySQL in Docker consists of the following steps: Pull the MySQL image to create and start the container, set the root user password, and map the port verification connection Create the database and the user grants all permissions to the database

The steps to update a Docker image are as follows: Pull the latest image tag New image Delete the old image for a specific tag (optional) Restart the container (if needed)

Docker container startup steps: Pull the container image: Run "docker pull [mirror name]". Create a container: Use "docker create [options] [mirror name] [commands and parameters]". Start the container: Execute "docker start [Container name or ID]". Check container status: Verify that the container is running with "docker ps".

Create a container in Docker: 1. Pull the image: docker pull [mirror name] 2. Create a container: docker run [Options] [mirror name] [Command] 3. Start the container: docker start [Container name]
