WHAT IS DOCKER
Docker?is a set of?platform as a service?(PaaS) products that use?OS-level virtualization?to deliver software in packages called?containers.[5]?The service has both free and premium tiers. The software that hosts the containers is called?Docker Engine.[6]?It was first started in 2013 and is developed by?Docker, Inc.[7]
Docker is a tool that is used to automate the deployment of applications in lightweight containers so that applications can work efficiently in different environments in isolation.
Background[edit]
Containers are isolated from one another and bundle their own software,?libraries?and configuration files; they can communicate with each other through well-defined channels.[8]?Because all of the containers share the services of a single?operating system kernel, they use fewer resources than?virtual machines.[6]
Operation[edit]
Docker can package an application and its dependencies in a virtual container that can run on any Linux, Windows, or macOS computer. This enables the application to run in a variety of locations, such as?on-premises, in?public?(see?decentralized computing,?distributed computing, and?cloud computing) or?private cloud.[10]?When running on Linux, Docker uses the resource isolation features of the?Linux kernel?(such as?cgroups?and kernel?namespaces) and a?union-capable file system?(such as?OverlayFS)[11]?to allow containers to run within a single Linux instance, avoiding the overhead of starting and maintaining?virtual machines.[12]?Docker on?macOS?uses a Linux?virtual machine?to run the containers.[13]
Because Docker containers are lightweight, a single server or virtual machine can run several containers simultaneously.[14]?A 2018 analysis found that a typical Docker use case involves running eight containers per host, and that a quarter of analyzed organizations run 18 or more per host.[15]?It can also be installed on a single board computer like the?Raspberry Pi.[16]
The Linux kernel's support for namespaces mostly[17]?isolates an application's view of the operating environment, including process trees, network, user IDs and mounted file systems, while the kernel's cgroups provide resource limiting for memory and CPU.[18]?Since version 0.9, Docker includes its own component (called "libcontainer") to use virtualization facilities provided directly by the Linux kernel, in addition to using abstracted virtualization interfaces via?libvirt,?LXC?and?systemd-nspawn.[19][9][10][20]
Docker implements a high-level?API?to provide lightweight containers that run processes in isolation.[21]
Licensing model[edit]
领英推荐
Components[edit]
The Docker software as a service offering consists of three components:
Tools[edit]
History[edit]
Docker Inc. was founded by Kamel Founadi, Solomon Hykes, and Sebastien Pahl[42]?during the?Y Combinator?Summer 2010 startup incubator group and launched in 2011.[43]?The startup was also one of the 12 startups in?Founder's Den?first cohort.[44]?Hykes started the Docker project in France as an internal project within?dotCloud, a?platform-as-a-service?company.[45]
Docker debuted to the public in Santa Clara at?PyCon?in 2013.[46]?It was released as?open-source?in March 2013.[21]?At the time, it used?LXC?as its default execution environment. One year later, with the release of version 0.9, Docker replaced LXC with its own component,?libcontainer, which was written in the?Go?programming language.[19][47]
In 2017, Docker created the Moby project for open research and development.[48]