|
...
|
...
|
@@ -21,12 +21,12 @@ are VMWare's vmdk, Oracle Virtualbox's vdi, and Amazon EC2's ami. In theory thes
|
|
21
|
21
|
automatically package their application into a "machine" for easy distribution and deployment. In practice, that almost never
|
|
22
|
22
|
happens, for a few reasons:
|
|
23
|
23
|
|
|
24
|
|
- * *Size*: VMs are very large which makes them impractical to store and transfer.
|
|
25
|
|
- * *Performance*: running VMs consumes significant CPU and memory, which makes them impractical in many scenarios, for example local development of multi-tier applications, and
|
|
26
|
|
- large-scale deployment of cpu and memory-intensive applications on large numbers of machines.
|
|
27
|
|
- * *Portability*: competing VM environments don't play well with each other. Although conversion tools do exist, they are limited and add even more overhead.
|
|
28
|
|
- * *Hardware-centric*: VMs were designed with machine operators in mind, not software developers. As a result, they offer very limited tooling for what developers need most:
|
|
29
|
|
- building, testing and running their software. For example, VMs offer no facilities for application versioning, monitoring, configuration, logging or service discovery.
|
|
|
24
|
+ * *Size*: VMs are very large which makes them impractical to store and transfer.
|
|
|
25
|
+ * *Performance*: running VMs consumes significant CPU and memory, which makes them impractical in many scenarios, for example local development of multi-tier applications, and
|
|
|
26
|
+ large-scale deployment of cpu and memory-intensive applications on large numbers of machines.
|
|
|
27
|
+ * *Portability*: competing VM environments don't play well with each other. Although conversion tools do exist, they are limited and add even more overhead.
|
|
|
28
|
+ * *Hardware-centric*: VMs were designed with machine operators in mind, not software developers. As a result, they offer very limited tooling for what developers need most:
|
|
|
29
|
+ building, testing and running their software. For example, VMs offer no facilities for application versioning, monitoring, configuration, logging or service discovery.
|
|
30
|
30
|
|
|
31
|
31
|
By contrast, Docker relies on a different sandboxing method known as *containerization*. Unlike traditional virtualization,
|
|
32
|
32
|
containerization takes place at the kernel level. Most modern operating system kernels now support the primitives necessary
|