Browse code

Merge pull request #29615 from londoncalling/docs-glossary-followup-PR#29561

followup to incorporate review comments per previous reviews on PR#29561
(cherry picked from commit b39b0c4596d424cd98856fb633183f30807ad0a2)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

Sebastiaan van Stijn authored on 2016/12/23 05:50:58
Showing 1 changed files
... ...
@@ -84,6 +84,28 @@ be done to get it running.
84 84
 
85 85
 *Also known as : docker-compose, fig*
86 86
 
87
+## copy-on-write
88
+
89
+Docker uses a
90
+[copy-on-write](https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/#/the-copy-on-write-strategy)
91
+technique and a [union file system](#union-file-system) for both images and
92
+containers to optimize resources and speed performance. Multiple copies of an
93
+entity share the same instance and each one makes only specific changes to its
94
+unique layer.
95
+
96
+Multiple containers can share access to the same image, and make
97
+container-specific changes on a writable layer which is deleted when
98
+the container is removed. This speeds up container start times and performance.
99
+
100
+Images are essentially layers of filesystems typically predicated on a base
101
+image under a writable layer, and built up with layers of differences from the
102
+base image. This minimizes the footprint of the image and enables shared
103
+development.
104
+
105
+For more about copy-on-write in the context of Docker, see [Understand images,
106
+containers, and storage
107
+drivers](https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/).
108
+
87 109
 ## container
88 110
 
89 111
 A container is a runtime instance of a [docker image](#image).
... ...
@@ -122,19 +144,21 @@ lightweight Docker development environment designed specifically for the Mac. A
122 122
 native Mac application, Docker for Mac uses the macOS Hypervisor framework,
123 123
 networking, and filesystem. It's the best solution if you want to build, debug,
124 124
 test, package, and ship Dockerized applications on a Mac. Docker for Mac
125
-supersedes [Docker Toolbox](#toolbox) as state-of-the-art Docker for macOS.
125
+supersedes [Docker Toolbox](#toolbox) as state-of-the-art Docker on macOS.
126
+
126 127
 
127 128
 ## Docker for Windows
128 129
 
129 130
 [Docker for Windows](https://docs.docker.com/docker-for-windows/) is an
130 131
 easy-to-install, lightweight Docker development environment designed
131
-specifically for Windows systems. Docker for Windows uses Microsoft Hyper-V, and
132
-runs as a native Windows app. It works with Windows Server 2016, and gives you
133
-the ability to set up and run Windows containers as well as the standard Linux
134
-containers (with an option to switch between the two). Docker for Windows is the
135
-best solution if you want to build, debug, test, package, and ship Dockerized
136
-applications on Windows machines. It supersedes [Docker Toolbox](#toolbox) as
137
-state-of-the-art Docker on Windows.
132
+specifically for Windows 10 systems that support Microsoft Hyper-V
133
+(Professional, Enterprise and Education). Docker for Windows uses Hyper-V for
134
+virtualization, and runs as a native Windows app. It works with Windows Server
135
+2016, and gives you the ability to set up and run Windows containers as well as
136
+the standard Linux containers, with an option to switch between the two. Docker
137
+for Windows is the best solution if you want to build, debug, test, package, and
138
+ship Dockerized applications from Windows machines. Docker for Windows
139
+supersedes [Docker Toolbox](#toolbox) as state-of-the-art Docker on Windows.
138 140
 
139 141
 ## Docker Hub
140 142
 
... ...
@@ -318,13 +342,25 @@ For Windows 10 systems that support Microsoft Hyper-V (Professional, Enterprise
318 318
 and Education), [Docker for
319 319
 Windows](https://docs.docker.com/docker-for-windows/) is the better solution.
320 320
 
321
-
322 321
 ## Union file system
323 322
 
324
-Union file systems, or UnionFS, are file systems that operate by creating
325
-layers, making them very lightweight and fast. Docker uses union file systems to
326
-provide the building blocks for containers.
327
-
323
+Union file systems implement a [union
324
+mount](https://en.wikipedia.org/wiki/Union_mount) and operate by creating
325
+layers. Docker uses union file systems in conjunction with
326
+[copy-on-write](#copy-on-write) techniques to provide the building blocks for
327
+containers, making them very lightweight and fast.
328
+
329
+For more on Docker and union file systems, see [Docker and AUFS in
330
+practice](https://docs.docker.com/engine/userguide/storagedriver/aufs-driver/),
331
+[Docker and Btrfs in
332
+practice](https://docs.docker.com/engine/userguide/storagedriver/btrfs-driver/),
333
+and [Docker and OverlayFS in
334
+practice](https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/)
335
+
336
+Example implementations of union file systems are
337
+[UnionFS](https://en.wikipedia.org/wiki/UnionFS),
338
+[AUFS](https://en.wikipedia.org/wiki/Aufs), and
339
+[Btrfs](https://btrfs.wiki.kernel.org/index.php/Main_Page).
328 340
 
329 341
 ## virtual machine
330 342