From 15a21ef1bdc2e833bc4c9d6b9919486dd0589457 Mon Sep 17 00:00:00 2001 From: Victoria Bialas Date: Tue, 20 Dec 2016 17:45:32 -0800 Subject: [PATCH] followup to incorporate review comments per previous reviews on PR#29561 incorporated review comments Signed-off-by: Victoria Bialas --- docs/reference/glossary.md | 60 ++++++++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 12 deletions(-) diff --git a/docs/reference/glossary.md b/docs/reference/glossary.md index 6404b8ef2f..faaa0ea070 100644 --- a/docs/reference/glossary.md +++ b/docs/reference/glossary.md @@ -62,6 +62,28 @@ be done to get it running. *Also known as : docker-compose, fig* +## copy-on-write + +Docker uses a +[copy-on-write](https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/#/the-copy-on-write-strategy) +technique and a [union file system](#union-file-system) for both images and +containers to optimize resources and speed performance. Multiple copies of an +entity share the same instance and each one makes only specific changes to its +unique layer. + +Multiple containers can share access to the same image, and make +container-specific changes on a writable layer which is deleted when +the container is removed. This speeds up container start times and performance. + +Images are essentially layers of filesystems typically predicated on a base +image under a writable layer, and built up with layers of differences from the +base image. This minimizes the footprint of the image and enables shared +development. + +For more about copy-on-write in the context of Docker, see [Understand images, +containers, and storage +drivers](https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/). + ## container A container is a runtime instance of a [docker image](#image). @@ -100,19 +122,21 @@ lightweight Docker development environment designed specifically for the Mac. A native Mac application, Docker for Mac uses the macOS Hypervisor framework, networking, and filesystem. It's the best solution if you want to build, debug, test, package, and ship Dockerized applications on a Mac. Docker for Mac -supersedes [Docker Toolbox](#toolbox) as state-of-the-art Docker for macOS. +supersedes [Docker Toolbox](#toolbox) as state-of-the-art Docker on macOS. + ## Docker for Windows [Docker for Windows](https://docs.docker.com/docker-for-windows/) is an easy-to-install, lightweight Docker development environment designed -specifically for Windows systems. Docker for Windows uses Microsoft Hyper-V, and -runs as a native Windows app. It works with Windows Server 2016, and gives you -the ability to set up and run Windows containers as well as the standard Linux -containers (with an option to switch between the two). Docker for Windows is the -best solution if you want to build, debug, test, package, and ship Dockerized -applications on Windows machines. It supersedes [Docker Toolbox](#toolbox) as -state-of-the-art Docker on Windows. +specifically for Windows 10 systems that support Microsoft Hyper-V +(Professional, Enterprise and Education). Docker for Windows uses Hyper-V for +virtualization, and runs as a native Windows app. It works with Windows Server +2016, and gives you the ability to set up and run Windows containers as well as +the standard Linux containers, with an option to switch between the two. Docker +for Windows is the best solution if you want to build, debug, test, package, and +ship Dockerized applications from Windows machines. Docker for Windows +supersedes [Docker Toolbox](#toolbox) as state-of-the-art Docker on Windows. ## Docker Hub @@ -296,13 +320,25 @@ For Windows 10 systems that support Microsoft Hyper-V (Professional, Enterprise and Education), [Docker for Windows](https://docs.docker.com/docker-for-windows/) is the better solution. - ## Union file system -Union file systems, or UnionFS, are file systems that operate by creating -layers, making them very lightweight and fast. Docker uses union file systems to -provide the building blocks for containers. +Union file systems implement a [union +mount](https://en.wikipedia.org/wiki/Union_mount) and operate by creating +layers. Docker uses union file systems in conjunction with +[copy-on-write](#copy-on-write) techniques to provide the building blocks for +containers, making them very lightweight and fast. +For more on Docker and union file systems, see [Docker and AUFS in +practice](https://docs.docker.com/engine/userguide/storagedriver/aufs-driver/), +[Docker and Btrfs in +practice](https://docs.docker.com/engine/userguide/storagedriver/btrfs-driver/), +and [Docker and OverlayFS in +practice](https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/) + +Example implementations of union file systems are +[UnionFS](https://en.wikipedia.org/wiki/UnionFS), +[AUFS](https://en.wikipedia.org/wiki/Aufs), and +[Btrfs](https://btrfs.wiki.kernel.org/index.php/Main_Page). ## virtual machine