Docker Is an open source application container engine , be based on Go language And follow Apache2.0 Open source agreement .
Docker It allows developers to package their applications and dependency packages into a lightweight 、 Portable containers , Then publish to any popular Linux On the machine , Virtualization can also be achieved .
Containers are completely sandboxed , There will be no interface with each other （ similar iPhone of app）, More importantly, the container performance overhead is very low .
Docker from 17.03 After version, it is divided into CE（Community Edition: Community Edition ） and EE（Enterprise Edition: Enterprise Edition ）, We can use the community version .
Who is suitable for reading this tutorial ？
This tutorial is suitable for operation and maintenance engineers and back-end developers , Through this tutorial, you can learn... Step by step Docker Use of .
Before reading this tutorial , What you need to know
Before reading this tutorial , You need to master Linux Common commands . You can use the website's Linux course To learn the relevant commands .
Docker Application scenarios
Web Automated packaging and publishing of applications .
Automated testing and continuous integration 、 release .
Deploy and adjust databases or other background applications in a service-oriented environment .
Compile from scratch or extend existing OpenShift Or Cloud Foundry Platform to build your own PaaS environment .
Docker The advantages of
Docker Is a tool for developing , An open platform for delivering and running applications .Docker Enables you to separate applications from infrastructure , So that software can be delivered quickly . With the help of Docker, You can manage your infrastructure the same way you manage your applications . By using Docker Methods to quickly deliver , Test and deploy code , You can greatly reduce the latency between writing code and running code in a production environment .
1、 Fast , Deliver your applications consistently
Docker Allow developers to work in a standardized environment using local containers for applications or services you provide , This simplifies the development life cycle .
Containers are ideal for continuous integration and continuous delivery （CI / CD） Workflow , Consider the following example scenario ：
- Your developers write code locally , And use Docker Containers share their work with colleagues .
- They use Docker Push its application into the test environment , And perform automatic or manual tests .
- When developers find errors , They can fix it in the development environment , Then redeploy it to the test environment , To test and verify .
- After the test , Push the patch to the production environment , It's as simple as pushing an updated image to the production environment .
2、 Responsive deployment and expansion
Docker Is a container based platform , Allow highly portable workloads .Docker The container can be on the developer's machine , On physical or virtual machines in the data center , Running on cloud services or in a mixed environment .
Docker Portability and lightweight features , It also allows you to easily complete the workload of dynamic management , And according to the business needs , Expand or dismantle applications and services in real time .
3、 Running more workloads on the same hardware
Docker Light and fast . It provides a feasible solution for virtual machines based on hypervisor 、 Economics 、 Efficient alternatives , So you can use more computing power to achieve your business goals .Docker Ideal for high-density environments and small to medium-sized deployments , And you can do more with fewer resources .
Docker Official website ：https://www.docker.com
Github Docker Source code ：https://github.com/docker/docker-ce