Home > Article > Operation and Maintenance > Is docker a system?
Docker is essentially an add-on system, to be precise, an open platform for developing, delivering and running applications; Docker enables developers to separate applications from infrastructure so they can be delivered quickly Software; with Docker you can also manage your infrastructure in the same way you manage your applications.
The operating environment of this article: ubuntu 18.04 system, Docker version 20.10.11, Dell G3 computer.
Is docker a system?
Docker is essentially an add-on system.
Docker is an open source application container engine, based on the Go language and open source in compliance with the Apache2.0 protocol.
Docker allows developers to package their applications and dependencies into a lightweight, portable container, and then publish it to any popular Linux machine, which can also be virtualized.
Containers completely use the sandbox mechanism and do not have any interfaces with each other (similar to iPhone apps). More importantly, the container performance overhead is extremely low.
Docker is divided into CE (Community Edition: Community Edition) and EE (Enterprise Edition: Enterprise Edition) from version 17.03 onwards.
Advantages of Docker
Docker is an open platform for developing, delivering and running applications. Docker enables you to separate applications from infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure the same way you manage your applications. By leveraging Docker's approach to quickly delivering, testing, and deploying code, you can significantly reduce the delay between writing code and running it in production.
Features
The typical scenarios of docker are mentioned on the docker website:
Automating the packaging and deployment of applications (automate the packaging and deployment of applications)
Creation of lightweight, private PAAS environments (Create lightweight, private PAAS environments)
Automated testing and continuous integration/deployment
Deploying and scaling web apps, databases and backend services (deployment and expansion) webapp, database and background services)
Due to its lightweight virtualization characteristics based on LXC, the most obvious feature of docker compared to KVM and the like is that it starts quickly and takes up less resources. Therefore, it is necessary to build an isolated and standardized operating environment, lightweight PaaS (such as dokku), build automated testing and continuous integration environments, and all applications that can be horizontally expanded (especially web applications that need to start and stop quickly to cope with peaks and valleys) .
Build a standardized operating environment. Most of the existing solutions are to run a set of puppet/chef or an image file on a baseOS. The disadvantage is that the former requires many prerequisites of base OS. , the latter is almost impossible to modify (because the file format of copy on write is read only when rootfs is running). Moreover, the latter file size is large, and environment management and version control itself are also a problem.
The PaaS environment is self-evident. At the beginning of its design and in the case of dotcloud, it was used as the environmental basis for PaaS products
Because of its standardized build method (buildfile) and good REST API, automated testing and continuous integration/deployment can be well integrated
Because of the lightweight characteristics of LXC, its startup It is fast, and docker can only load the changed parts of each container, so it takes up less resources. It can be faster and take up less resources in a stand-alone environment compared with virtualization solutions such as KVM
Recommended learning: "docker video tutorial"
The above is the detailed content of Is docker a system?. For more information, please follow other related articles on the PHP Chinese website!