What is Docker
Docker is an Open-source project that was born in early 2013 and was initially an amateur project within the DotCloud company. It is based on the go language implemented by Google Inc. The project later joined the Linux Foundation, following the Apache 2.0 protocol, where project code was maintained on GitHub.
Docker has received extensive attention and discussion since open source, so that DotCloud company later renamed Docker Inc. Redhat has focused on supporting Docker;google in its RHEL6.5, and is also widely used in its PaaS offerings.
The goal of the Docker project is to implement lightweight operating system virtualization solutions. Docker is based on technologies such as Linux containers (LXC).
On the basis of LXC, the Docker is further packaged so that the user does not need to care about the management of the container, making the operation more convenient. The user operates a Docker container as simple as manipulating a fast, lightweight virtual machine.
The following picture compares the differences between Docker and traditional virtualization, and the visible container is virtualized at the operating system level, directly reusing the local host's operating system, while the traditional approach is implemented at the hardware level.
Why do you use Docker?
As a new way of virtualization, Docker has many advantages over the traditional way of virtualization.
First, the start of the Docker container can be implemented at the second level, which is much faster than the traditional virtual machine approach. Second, Docker is highly utilized for system resources and can run thousands of Docker containers on a single host.
In addition to running the application, the container basically does not consume additional system resources, so the performance of the application is very high, and the overhead of the system is as small as possible. Traditional virtual machines run 10 different applications with 10 virtual machines, and Docker only needs to start 10 isolated applications.
Specifically, Docker has great advantages in the following aspects. faster delivery and deployment
for development and operations (DEVOP) people, the most desirable is to create or configure one at a time, to run normally anywhere.
Developers can use a standard mirror to build a set of development containers, and after development is complete, the operator can use this container directly to deploy the code. Docker can quickly create containers, quickly iterate over applications, and make the entire process visible, making it easier for other members of the team to understand how the application is created and worked. The Docker container is very light and fast. The start time of the container is second-level, which saves the development, testing and deployment time greatly. more efficient Virtualization
The operation of the Docker container does not require additional hypervisor support, it is kernel-level virtualization and therefore can achieve higher performance and efficiency. Easier migrations and extensions
The Docker container can run on almost any platform, including physical machines, virtual machines, public clouds, private clouds, personal computers, servers, and so on. This compatibility allows users to migrate an application directly from one platform to another. Simpler Management
The use of Docker, only a small change, can replace a lot of the previous update work. All modifications are distributed and updated in an incremental manner, enabling automation and efficient management. Compare traditional Virtual machine summary
characteristic |
Container |
Virtual Machine |
Start |
Second level |
Minute level |
Hard drive use |
MB is generally |
Typically GB |
Performance |
Close to native |
Weaker than |
System Support Quantity |
Single support for thousands of containers |
General dozens of |
reproduced from:
docker--from getting started to practice