From eda0c811a4320883318948b8d731e4c09753a8bc Mon Sep 17 00:00:00 2001 From: John Mulhausen Date: Tue, 21 Feb 2017 16:55:41 -0800 Subject: [PATCH 1/3] First pass: Get YAML version of Glossary running --- _data/glossary.yaml | 294 ++++++++++++++++++++++++++++++++++++++ glossary.md | 339 +------------------------------------------- js/menu.js | 14 ++ 3 files changed, 314 insertions(+), 333 deletions(-) create mode 100644 _data/glossary.yaml diff --git a/_data/glossary.yaml b/_data/glossary.yaml new file mode 100644 index 0000000000..6453a424bd --- /dev/null +++ b/_data/glossary.yaml @@ -0,0 +1,294 @@ +glossary: +- term: aufs + def: | + aufs (advanced multi layered unification filesystem) is a Linux [filesystem](#filesystem) that + Docker supports as a storage backend. It implements the + [union mount](http://en.wikipedia.org/wiki/Union_mount) for Linux file systems. +- term: base image + def: | + An image that has no parent is a **base image**. +- term: boot2docker + def: | + [boot2docker](http://boot2docker.io/) is a lightweight Linux distribution made + specifically to run Docker containers. The boot2docker management tool for Mac and Windows was deprecated and replaced by [`docker-machine`](#machine) which you can install with the Docker Toolbox. +- term: btrfs + def: | + btrfs (B-tree file system) is a Linux [filesystem](#filesystem) that Docker + supports as a storage backend. It is a [copy-on-write](http://en.wikipedia.org/wiki/Copy-on-write) + filesystem. +- term: build + def: | + build is the process of building Docker images using a [Dockerfile](#dockerfile). + The build uses a Dockerfile and a "context". The context is the set of files in the + directory in which the image is built. +- term: cgroups + def: | + cgroups is a Linux kernel feature that limits, accounts for, and isolates + the resource usage (CPU, memory, disk I/O, network, etc.) of a collection + of processes. Docker relies on cgroups to control and isolate resource limits. + + *Also known as : control groups* +- term: Compose + def: | + [Compose](https://github.com/docker/compose) is a tool for defining and + running complex applications with Docker. With compose, you define a + multi-container application in a single file, then spin your + application up in a single command which does everything that needs to + be done to get it running. + + *Also known as : docker-compose, fig* +- term: copy-on-write + def: | + Docker uses a + [copy-on-write](/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](/engine/userguide/storagedriver/imagesandcontainers/). +- term: container + def: | + A container is a runtime instance of a [docker image](#image). + + A Docker container consists of + + - A Docker image + - Execution environment + - A standard set of instructions + + The concept is borrowed from Shipping Containers, which define a standard to ship + goods globally. Docker defines a standard to ship software. +- term: data volume + def: | + A data volume is a specially-designated directory within one or more containers + that bypasses the Union File System. Data volumes are designed to persist data, + independent of the container's life cycle. Docker therefore never automatically + delete volumes when you remove a container, nor will it "garbage collect" + volumes that are no longer referenced by a container. +- term: Docker + def: | + The term Docker can refer to + + - The Docker project as a whole, which is a platform for developers and sysadmins to + develop, ship, and run applications + - The docker daemon process running on the host which manages images and containers +- term: Docker for Mac + def: | + [Docker for Mac](/docker-for-mac/) is an easy-to-install, + 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 on macOS. +- term: Docker for Windows + def: | + [Docker for Windows](/docker-for-windows/) is an + easy-to-install, lightweight Docker development environment designed + 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. +- term: Docker Hub + def: | + The [Docker Hub](https://hub.docker.com/) is a centralized resource for working with + Docker and its components. It provides the following services: + + - Docker image hosting + - User authentication + - Automated image builds and work-flow tools such as build triggers and web hooks + - Integration with GitHub and Bitbucket +- term: Dockerfile + def: | + A Dockerfile is a text document that contains all the commands you would + normally execute manually in order to build a Docker image. Docker can + build images automatically by reading the instructions from a Dockerfile. +- term: filesystem + def: | + A file system is the method an operating system uses to name files + and assign them locations for efficient storage and retrieval. + + Examples : + + - Linux : ext4, aufs, btrfs, zfs + - Windows : NTFS + - macOS : HFS+ +- term: image + def: | + Docker images are the basis of [containers](#container). An Image is an + ordered collection of root filesystem changes and the corresponding + execution parameters for use within a container runtime. An image typically + contains a union of layered filesystems stacked on top of each other. An image + does not have state and it never changes. +- term: libcontainer + def: | + libcontainer provides a native Go implementation for creating containers with + namespaces, cgroups, capabilities, and filesystem access controls. It allows + you to manage the lifecycle of the container performing additional operations + after the container is created. +- term: libnetwork + def: | + libnetwork provides a native Go implementation for creating and managing container + network namespaces and other network resources. It manage the networking lifecycle + of the container performing additional operations after the container is created. +- term: link + def: | + links provide a legacy interface to connect Docker containers running on the + same host to each other without exposing the hosts' network ports. Use the + Docker networks feature instead. +- term: Machine + def: | + [Machine](https://github.com/docker/machine) is a Docker tool which + makes it really easy to create Docker hosts on your computer, on + cloud providers and inside your own data center. It creates servers, + installs Docker on them, then configures the Docker client to talk to them. + + *Also known as : docker-machine* +- term: node + def: | + A [node](/engine/swarm/how-swarm-mode-works/nodes/) is a physical or virtual + machine running an instance of the Docker Engine in swarm mode. + + **Manager nodes** perform swarm management and orchestration duties. By default + manager nodes are also worker nodes. + + **Worker nodes** execute tasks. +- term: overlay network driver + def: | + Overlay network driver provides out of the box multi-host network connectivity + for docker containers in a cluster. +- term: overlay storage driver + def: | + OverlayFS is a [filesystem](#filesystem) service for Linux which implements a + [union mount](http://en.wikipedia.org/wiki/Union_mount) for other file systems. + It is supported by the Docker daemon as a storage driver. +- term: registry + def: | + A Registry is a hosted service containing [repositories](#repository) of [images](#image) + which responds to the Registry API. + + The default registry can be accessed using a browser at [Docker Hub](#docker-hub) + or using the `docker search` command. +- term: repository + def: | + A repository is a set of Docker images. A repository can be shared by pushing it + to a [registry](#registry) server. The different images in the repository can be + labeled using [tags](#tag). + + Here is an example of the shared [nginx repository](https://hub.docker.com/_/nginx/) + and its [tags](https://hub.docker.com/r/library/nginx/tags/) +- term: service + def: | + A [service](/engine/swarm/how-swarm-mode-works/services/) is the definition of how + you want to run your application containers in a swarm. At the most basic level + a service defines which container image to run in the swarm and which commands + to run in the container. For orchestration purposes, the service defines the + "desired state", meaning how many containers to run as tasks and constraints for + deploying the containers. + + Frequently a service is a microservice within the context of some larger + application. Examples of services might include an HTTP server, a database, or + any other type of executable program that you wish to run in a distributed + environment. +- term: service discovery + def: | + Swarm mode [service discovery](/engine/swarm/networking/#use-swarm-mode-service-discovery) is a DNS component + internal to the swarm that automatically assigns each service on an overlay + network in the swarm a VIP and DNS entry. Containers on the network share DNS + mappings for the service via gossip so any container on the network can access + the service via its service name. + + You don’t need to expose service-specific ports to make the service available to + other services on the same overlay network. The swarm’s internal load balancer + automatically distributes requests to the service VIP among the active tasks. +- term: swarm + def: | + A [swarm](/engine/swarm/) is a cluster of one or more Docker Engines running in [swarm mode](#swarm-mode). +- term: Docker Swarm + def: | + Do not confuse [Docker Swarm](https://github.com/docker/swarm) with the [swarm mode](#swarm-mode) features in Docker Engine. + + Docker Swarm is the name of a standalone native clustering tool for Docker. + Docker Swarm pools together several Docker hosts and exposes them as a single + virtual Docker host. It serves the standard Docker API, so any tool that already + works with Docker can now transparently scale up to multiple hosts. + + *Also known as : docker-swarm* +- term: swarm mode + def: | + [Swarm mode](/engine/swarm/) refers to cluster management and orchestration + features embedded in Docker Engine. When you initialize a new swarm (cluster) or + join nodes to a swarm, the Docker Engine runs in swarm mode. +- term: tag + def: | + A tag is a label applied to a Docker image in a [repository](#repository). + tags are how various images in a repository are distinguished from each other. + + *Note : This label is not related to the key=value labels set for docker daemon* +- term: task + def: | + A [task](/engine/swarm/how-swarm-mode-works/services/#/tasks-and-scheduling) is the + atomic unit of scheduling within a swarm. A task carries a Docker container and + the commands to run inside the container. Manager nodes assign tasks to worker + nodes according to the number of replicas set in the service scale. + + The diagram below illustrates the relationship of services to tasks and + containers. + + ![services diagram](/engine/swarm/images/services-diagram.png) +- term: Toolbox + def: | + [Docker Toolbox](/toolbox/overview/) is a legacy + installer for Mac and Windows users. It uses Oracle VirtualBox for + virtualization. + + For Macs running OS X El Capitan 10.11 and newer macOS releases, [Docker for + Mac](/docker-for-mac/) is the better solution. + + For Windows 10 systems that support Microsoft Hyper-V (Professional, Enterprise + and Education), [Docker for + Windows](/docker-for-windows/) is the better solution. +- term: Union file system + def: | + 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](/engine/userguide/storagedriver/aufs-driver/), + [Docker and Btrfs in + practice](/engine/userguide/storagedriver/btrfs-driver/), + and [Docker and OverlayFS in + practice](/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). +- term: virtual machine + def: | + A virtual machine is a program that emulates a complete computer and imitates dedicated hardware. + It shares physical hardware resources with other users but isolates the operating system. The + end user has the same experience on a Virtual Machine as they would have on dedicated hardware. + + Compared to containers, a virtual machine is heavier to run, provides more isolation, + gets its own set of resources and does minimal sharing. + + *Also known as : VM* diff --git a/glossary.md b/glossary.md index b7e4a5c998..dafe7e48ea 100644 --- a/glossary.md +++ b/glossary.md @@ -2,339 +2,12 @@ title: "Docker Glossary" description: "Glossary of terms used around Docker" keywords: "glossary, docker, terms, definitions" -notoc: true +skip-right-nav: true --- +{% for entry in site.data.glossary.glossary %} +## {{ entry.term }} -## aufs +{{ entry.def }} -aufs (advanced multi layered unification filesystem) is a Linux [filesystem](#filesystem) that -Docker supports as a storage backend. It implements the -[union mount](http://en.wikipedia.org/wiki/Union_mount) for Linux file systems. - -## base image - -An image that has no parent is a **base image**. - -## boot2docker - -[boot2docker](http://boot2docker.io/) is a lightweight Linux distribution made -specifically to run Docker containers. The boot2docker management tool for Mac and Windows was deprecated and replaced by [`docker-machine`](#machine) which you can install with the Docker Toolbox. - -## btrfs - -btrfs (B-tree file system) is a Linux [filesystem](#filesystem) that Docker -supports as a storage backend. It is a [copy-on-write](http://en.wikipedia.org/wiki/Copy-on-write) -filesystem. - -## build - -build is the process of building Docker images using a [Dockerfile](#dockerfile). -The build uses a Dockerfile and a "context". The context is the set of files in the -directory in which the image is built. - -## cgroups - -cgroups is a Linux kernel feature that limits, accounts for, and isolates -the resource usage (CPU, memory, disk I/O, network, etc.) of a collection -of processes. Docker relies on cgroups to control and isolate resource limits. - -*Also known as : control groups* - -## Compose - -[Compose](https://github.com/docker/compose) is a tool for defining and -running complex applications with Docker. With compose, you define a -multi-container application in a single file, then spin your -application up in a single command which does everything that needs to -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). - -A Docker container consists of - -- A Docker image -- Execution environment -- A standard set of instructions - -The concept is borrowed from Shipping Containers, which define a standard to ship -goods globally. Docker defines a standard to ship software. - -## data volume - -A data volume is a specially-designated directory within one or more containers -that bypasses the Union File System. Data volumes are designed to persist data, -independent of the container's life cycle. Docker therefore never automatically -delete volumes when you remove a container, nor will it "garbage collect" -volumes that are no longer referenced by a container. - - -## Docker - -The term Docker can refer to - -- The Docker project as a whole, which is a platform for developers and sysadmins to -develop, ship, and run applications -- The docker daemon process running on the host which manages images and containers - - -## Docker for Mac - -[Docker for Mac](https://docs.docker.com/docker-for-mac/) is an easy-to-install, -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 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 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 - -The [Docker Hub](https://hub.docker.com/) is a centralized resource for working with -Docker and its components. It provides the following services: - -- Docker image hosting -- User authentication -- Automated image builds and work-flow tools such as build triggers and web hooks -- Integration with GitHub and Bitbucket - - -## Dockerfile - -A Dockerfile is a text document that contains all the commands you would -normally execute manually in order to build a Docker image. Docker can -build images automatically by reading the instructions from a Dockerfile. - -## filesystem - -A file system is the method an operating system uses to name files -and assign them locations for efficient storage and retrieval. - -Examples : - -- Linux : ext4, aufs, btrfs, zfs -- Windows : NTFS -- macOS : HFS+ - -## image - -Docker images are the basis of [containers](#container). An Image is an -ordered collection of root filesystem changes and the corresponding -execution parameters for use within a container runtime. An image typically -contains a union of layered filesystems stacked on top of each other. An image -does not have state and it never changes. - -## libcontainer - -libcontainer provides a native Go implementation for creating containers with -namespaces, cgroups, capabilities, and filesystem access controls. It allows -you to manage the lifecycle of the container performing additional operations -after the container is created. - -## libnetwork - -libnetwork provides a native Go implementation for creating and managing container -network namespaces and other network resources. It manage the networking lifecycle -of the container performing additional operations after the container is created. - -## link - -links provide a legacy interface to connect Docker containers running on the -same host to each other without exposing the hosts' network ports. Use the -Docker networks feature instead. - -## Machine - -[Machine](https://github.com/docker/machine) is a Docker tool which -makes it really easy to create Docker hosts on your computer, on -cloud providers and inside your own data center. It creates servers, -installs Docker on them, then configures the Docker client to talk to them. - -*Also known as : docker-machine* - -## node - -A [node](https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/) is a physical or virtual -machine running an instance of the Docker Engine in swarm mode. - -**Manager nodes** perform swarm management and orchestration duties. By default -manager nodes are also worker nodes. - -**Worker nodes** execute tasks. - -## overlay network driver - -Overlay network driver provides out of the box multi-host network connectivity -for docker containers in a cluster. - -## overlay storage driver - -OverlayFS is a [filesystem](#filesystem) service for Linux which implements a -[union mount](http://en.wikipedia.org/wiki/Union_mount) for other file systems. -It is supported by the Docker daemon as a storage driver. - -## registry - -A Registry is a hosted service containing [repositories](#repository) of [images](#image) -which responds to the Registry API. - -The default registry can be accessed using a browser at [Docker Hub](#docker-hub) -or using the `docker search` command. - -## repository - -A repository is a set of Docker images. A repository can be shared by pushing it -to a [registry](#registry) server. The different images in the repository can be -labeled using [tags](#tag). - -Here is an example of the shared [nginx repository](https://hub.docker.com/_/nginx/) -and its [tags](https://hub.docker.com/r/library/nginx/tags/) - - -## service - -A [service](https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/) is the definition of how -you want to run your application containers in a swarm. At the most basic level -a service defines which container image to run in the swarm and which commands -to run in the container. For orchestration purposes, the service defines the -"desired state", meaning how many containers to run as tasks and constraints for -deploying the containers. - -Frequently a service is a microservice within the context of some larger -application. Examples of services might include an HTTP server, a database, or -any other type of executable program that you wish to run in a distributed -environment. - -## service discovery - -Swarm mode [service discovery](https://docs.docker.com/engine/swarm/networking/#use-swarm-mode-service-discovery) is a DNS component -internal to the swarm that automatically assigns each service on an overlay -network in the swarm a VIP and DNS entry. Containers on the network share DNS -mappings for the service via gossip so any container on the network can access -the service via its service name. - -You don’t need to expose service-specific ports to make the service available to -other services on the same overlay network. The swarm’s internal load balancer -automatically distributes requests to the service VIP among the active tasks. - -## swarm - -A [swarm](https://docs.docker.com/engine/swarm/) is a cluster of one or more Docker Engines running in [swarm mode](#swarm-mode). - -## Docker Swarm - -Do not confuse [Docker Swarm](https://github.com/docker/swarm) with the [swarm mode](#swarm-mode) features in Docker Engine. - -Docker Swarm is the name of a standalone native clustering tool for Docker. -Docker Swarm pools together several Docker hosts and exposes them as a single -virtual Docker host. It serves the standard Docker API, so any tool that already -works with Docker can now transparently scale up to multiple hosts. - -*Also known as : docker-swarm* - -## swarm mode - -[Swarm mode](https://docs.docker.com/engine/swarm/) refers to cluster management and orchestration -features embedded in Docker Engine. When you initialize a new swarm (cluster) or -join nodes to a swarm, the Docker Engine runs in swarm mode. - -## tag - -A tag is a label applied to a Docker image in a [repository](#repository). -tags are how various images in a repository are distinguished from each other. - -*Note : This label is not related to the key=value labels set for docker daemon* - -## task - -A [task](https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/#/tasks-and-scheduling) is the -atomic unit of scheduling within a swarm. A task carries a Docker container and -the commands to run inside the container. Manager nodes assign tasks to worker -nodes according to the number of replicas set in the service scale. - -The diagram below illustrates the relationship of services to tasks and -containers. - -![services diagram](https://docs.docker.com/engine/swarm/images/services-diagram.png) - -## Toolbox - -[Docker Toolbox](https://docs.docker.com/toolbox/overview/) is a legacy -installer for Mac and Windows users. It uses Oracle VirtualBox for -virtualization. - -For Macs running OS X El Capitan 10.11 and newer macOS releases, [Docker for -Mac](https://docs.docker.com/docker-for-mac/) is the better solution. - -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 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 - -A virtual machine is a program that emulates a complete computer and imitates dedicated hardware. -It shares physical hardware resources with other users but isolates the operating system. The -end user has the same experience on a Virtual Machine as they would have on dedicated hardware. - -Compared to containers, a virtual machine is heavier to run, provides more isolation, -gets its own set of resources and does minimal sharing. - -*Also known as : VM* + +{% endfor %} diff --git a/js/menu.js b/js/menu.js index 1a5ba82bee..64b1f2c31c 100644 --- a/js/menu.js +++ b/js/menu.js @@ -1,4 +1,6 @@ +// structure that includes every page's title, url, description, and keywords var metadata; +// search autocomplete vars var autoCompleteShowing = false; var displayingAutcompleteResults = new Array(); var autoCompleteShowingID = 0; @@ -9,6 +11,17 @@ var scoreForTitleMatch = 10; var scoreForURLMatch = 5; var scoreForKeywordMatch = 3; var scoreForDescriptionMatch = 1 + +function glossaryCheck() { + if (window.location.href.indexOf("/glossary/") > -1) + { + // you're viewing the glossary; load related topics for each entry + $(".relatedGlossary").each(function(){ + console.log(this); + }); + } +} + function addResult(topic, matchesTitle, matchesDescription, matchesURL, matchesKeywords) { var matchScore = (matchesTitle * scoreForTitleMatch) + (matchesDescription * scoreForDescriptionMatch) + (matchesURL * scoreForURLMatch) + (matchesKeywords * scoreForKeywordMatch); @@ -195,5 +208,6 @@ jQuery(document).ready(function(){ $.getJSON( "/metadata.txt", function( data ) { metadata = data; hookupTOCEvents(); + glossaryCheck(); }); }); From 81c71d67a12a41a979d7cf5882aa05490a6e4523 Mon Sep 17 00:00:00 2001 From: John Mulhausen Date: Tue, 21 Feb 2017 18:45:07 -0800 Subject: [PATCH 2/3] Add Related topics... buttons --- _data/glossary.yaml | 491 ++++++++++++++++++++------------------------ glossary.md | 21 +- js/menu.js | 44 +++- 3 files changed, 285 insertions(+), 271 deletions(-) diff --git a/_data/glossary.yaml b/_data/glossary.yaml index 6453a424bd..ab9a3e0e62 100644 --- a/_data/glossary.yaml +++ b/_data/glossary.yaml @@ -1,294 +1,257 @@ -glossary: -- term: aufs - def: | - aufs (advanced multi layered unification filesystem) is a Linux [filesystem](#filesystem) that - Docker supports as a storage backend. It implements the - [union mount](http://en.wikipedia.org/wiki/Union_mount) for Linux file systems. -- term: base image - def: | - An image that has no parent is a **base image**. -- term: boot2docker - def: | - [boot2docker](http://boot2docker.io/) is a lightweight Linux distribution made - specifically to run Docker containers. The boot2docker management tool for Mac and Windows was deprecated and replaced by [`docker-machine`](#machine) which you can install with the Docker Toolbox. -- term: btrfs - def: | - btrfs (B-tree file system) is a Linux [filesystem](#filesystem) that Docker - supports as a storage backend. It is a [copy-on-write](http://en.wikipedia.org/wiki/Copy-on-write) - filesystem. -- term: build - def: | - build is the process of building Docker images using a [Dockerfile](#dockerfile). - The build uses a Dockerfile and a "context". The context is the set of files in the - directory in which the image is built. -- term: cgroups - def: | - cgroups is a Linux kernel feature that limits, accounts for, and isolates - the resource usage (CPU, memory, disk I/O, network, etc.) of a collection - of processes. Docker relies on cgroups to control and isolate resource limits. +aufs: | + aufs (advanced multi layered unification filesystem) is a Linux [filesystem](#filesystem) that + Docker supports as a storage backend. It implements the + [union mount](http://en.wikipedia.org/wiki/Union_mount) for Linux file systems. +base image: | + An image that has no parent is a **base image**. +boot2docker: | + [boot2docker](http://boot2docker.io/) is a lightweight Linux distribution made + specifically to run Docker containers. The boot2docker management tool for Mac and Windows was deprecated and replaced by [`docker-machine`](#machine) which you can install with the Docker Toolbox. +btrfs: | + btrfs (B-tree file system) is a Linux [filesystem](#filesystem) that Docker + supports as a storage backend. It is a [copy-on-write](http://en.wikipedia.org/wiki/Copy-on-write) + filesystem. +build: | + build is the process of building Docker images using a [Dockerfile](#dockerfile). + The build uses a Dockerfile and a "context". The context is the set of files in the + directory in which the image is built. +cgroups: | + cgroups is a Linux kernel feature that limits, accounts for, and isolates + the resource usage (CPU, memory, disk I/O, network, etc.) of a collection + of processes. Docker relies on cgroups to control and isolate resource limits. - *Also known as : control groups* -- term: Compose - def: | - [Compose](https://github.com/docker/compose) is a tool for defining and - running complex applications with Docker. With compose, you define a - multi-container application in a single file, then spin your - application up in a single command which does everything that needs to - be done to get it running. + *Also known as : control groups* +Compose: | + [Compose](https://github.com/docker/compose) is a tool for defining and + running complex applications with Docker. With compose, you define a + multi-container application in a single file, then spin your + application up in a single command which does everything that needs to + be done to get it running. - *Also known as : docker-compose, fig* -- term: copy-on-write - def: | - Docker uses a - [copy-on-write](/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. + *Also known as : docker-compose, fig* +copy-on-write: | + Docker uses a + [copy-on-write](/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. + 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. + 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](/engine/userguide/storagedriver/imagesandcontainers/). -- term: container - def: | - A container is a runtime instance of a [docker image](#image). + For more about copy-on-write in the context of Docker, see [Understand images, + containers, and storage + drivers](/engine/userguide/storagedriver/imagesandcontainers/). +container: | + A container is a runtime instance of a [docker image](#image). - A Docker container consists of + A Docker container consists of - - A Docker image - - Execution environment - - A standard set of instructions + A Docker image + Execution environment + A standard set of instructions - The concept is borrowed from Shipping Containers, which define a standard to ship - goods globally. Docker defines a standard to ship software. -- term: data volume - def: | - A data volume is a specially-designated directory within one or more containers - that bypasses the Union File System. Data volumes are designed to persist data, - independent of the container's life cycle. Docker therefore never automatically - delete volumes when you remove a container, nor will it "garbage collect" - volumes that are no longer referenced by a container. -- term: Docker - def: | - The term Docker can refer to + The concept is borrowed from Shipping Containers, which define a standard to ship + goods globally. Docker defines a standard to ship software. +data volume: | + A data volume is a specially-designated directory within one or more containers + that bypasses the Union File System. Data volumes are designed to persist data, + independent of the container's life cycle. Docker therefore never automatically + delete volumes when you remove a container, nor will it "garbage collect" + volumes that are no longer referenced by a container. +Docker: | + The term Docker can refer to - - The Docker project as a whole, which is a platform for developers and sysadmins to - develop, ship, and run applications - - The docker daemon process running on the host which manages images and containers -- term: Docker for Mac - def: | - [Docker for Mac](/docker-for-mac/) is an easy-to-install, - 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 on macOS. -- term: Docker for Windows - def: | - [Docker for Windows](/docker-for-windows/) is an - easy-to-install, lightweight Docker development environment designed - 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. -- term: Docker Hub - def: | - The [Docker Hub](https://hub.docker.com/) is a centralized resource for working with - Docker and its components. It provides the following services: + The Docker project as a whole, which is a platform for developers and sysadmins to + develop, ship, and run applications + The docker daemon process running on the host which manages images and containers +Docker for Mac: | + [Docker for Mac](/docker-for-mac/) is an easy-to-install, + 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 on macOS. +Docker for Windows: | + [Docker for Windows](/docker-for-windows/) is an + easy-to-install, lightweight Docker development environment designed + 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: | + The [Docker Hub](https://hub.docker.com/) is a centralized resource for working with + Docker and its components. It provides the following services: - - Docker image hosting - - User authentication - - Automated image builds and work-flow tools such as build triggers and web hooks - - Integration with GitHub and Bitbucket -- term: Dockerfile - def: | - A Dockerfile is a text document that contains all the commands you would - normally execute manually in order to build a Docker image. Docker can - build images automatically by reading the instructions from a Dockerfile. -- term: filesystem - def: | - A file system is the method an operating system uses to name files - and assign them locations for efficient storage and retrieval. + Docker image hosting + User authentication + Automated image builds and work-flow tools such as build triggers and web hooks + Integration with GitHub and Bitbucket +Dockerfile: | + A Dockerfile is a text document that contains all the commands you would + normally execute manually in order to build a Docker image. Docker can + build images automatically by reading the instructions from a Dockerfile. +filesystem: | + A file system is the method an operating system uses to name files + and assign them locations for efficient storage and retrieval. - Examples : + Examples : - - Linux : ext4, aufs, btrfs, zfs - - Windows : NTFS - - macOS : HFS+ -- term: image - def: | - Docker images are the basis of [containers](#container). An Image is an - ordered collection of root filesystem changes and the corresponding - execution parameters for use within a container runtime. An image typically - contains a union of layered filesystems stacked on top of each other. An image - does not have state and it never changes. -- term: libcontainer - def: | - libcontainer provides a native Go implementation for creating containers with - namespaces, cgroups, capabilities, and filesystem access controls. It allows - you to manage the lifecycle of the container performing additional operations - after the container is created. -- term: libnetwork - def: | - libnetwork provides a native Go implementation for creating and managing container - network namespaces and other network resources. It manage the networking lifecycle - of the container performing additional operations after the container is created. -- term: link - def: | - links provide a legacy interface to connect Docker containers running on the - same host to each other without exposing the hosts' network ports. Use the - Docker networks feature instead. -- term: Machine - def: | - [Machine](https://github.com/docker/machine) is a Docker tool which - makes it really easy to create Docker hosts on your computer, on - cloud providers and inside your own data center. It creates servers, - installs Docker on them, then configures the Docker client to talk to them. + Linux : ext4, aufs, btrfs, zfs + Windows : NTFS + macOS : HFS+ +image: | + Docker images are the basis of [containers](#container). An Image is an + ordered collection of root filesystem changes and the corresponding + execution parameters for use within a container runtime. An image typically + contains a union of layered filesystems stacked on top of each other. An image + does not have state and it never changes. +libcontainer: | + libcontainer provides a native Go implementation for creating containers with + namespaces, cgroups, capabilities, and filesystem access controls. It allows + you to manage the lifecycle of the container performing additional operations + after the container is created. +libnetwork: | + libnetwork provides a native Go implementation for creating and managing container + network namespaces and other network resources. It manage the networking lifecycle + of the container performing additional operations after the container is created. +link: | + links provide a legacy interface to connect Docker containers running on the + same host to each other without exposing the hosts' network ports. Use the + Docker networks feature instead. +Machine: | + [Machine](https://github.com/docker/machine) is a Docker tool which + makes it really easy to create Docker hosts on your computer, on + cloud providers and inside your own data center. It creates servers, + installs Docker on them, then configures the Docker client to talk to them. - *Also known as : docker-machine* -- term: node - def: | - A [node](/engine/swarm/how-swarm-mode-works/nodes/) is a physical or virtual - machine running an instance of the Docker Engine in swarm mode. + *Also known as : docker-machine* +node: | + A [node](/engine/swarm/how-swarm-mode-works/nodes/) is a physical or virtual + machine running an instance of the Docker Engine in swarm mode. - **Manager nodes** perform swarm management and orchestration duties. By default - manager nodes are also worker nodes. + **Manager nodes** perform swarm management and orchestration duties. By default + manager nodes are also worker nodes. - **Worker nodes** execute tasks. -- term: overlay network driver - def: | - Overlay network driver provides out of the box multi-host network connectivity - for docker containers in a cluster. -- term: overlay storage driver - def: | - OverlayFS is a [filesystem](#filesystem) service for Linux which implements a - [union mount](http://en.wikipedia.org/wiki/Union_mount) for other file systems. - It is supported by the Docker daemon as a storage driver. -- term: registry - def: | - A Registry is a hosted service containing [repositories](#repository) of [images](#image) - which responds to the Registry API. + **Worker nodes** execute tasks. +overlay network driver: | + Overlay network driver provides out of the box multi-host network connectivity + for docker containers in a cluster. +overlay storage driver: | + OverlayFS is a [filesystem](#filesystem) service for Linux which implements a + [union mount](http://en.wikipedia.org/wiki/Union_mount) for other file systems. + It is supported by the Docker daemon as a storage driver. +registry: | + A Registry is a hosted service containing [repositories](#repository) of [images](#image) + which responds to the Registry API. - The default registry can be accessed using a browser at [Docker Hub](#docker-hub) - or using the `docker search` command. -- term: repository - def: | - A repository is a set of Docker images. A repository can be shared by pushing it - to a [registry](#registry) server. The different images in the repository can be - labeled using [tags](#tag). + The default registry can be accessed using a browser at [Docker Hub](#docker-hub) + or using the `docker search` command. +repository: | + A repository is a set of Docker images. A repository can be shared by pushing it + to a [registry](#registry) server. The different images in the repository can be + labeled using [tags](#tag). - Here is an example of the shared [nginx repository](https://hub.docker.com/_/nginx/) - and its [tags](https://hub.docker.com/r/library/nginx/tags/) -- term: service - def: | - A [service](/engine/swarm/how-swarm-mode-works/services/) is the definition of how - you want to run your application containers in a swarm. At the most basic level - a service defines which container image to run in the swarm and which commands - to run in the container. For orchestration purposes, the service defines the - "desired state", meaning how many containers to run as tasks and constraints for - deploying the containers. + Here is an example of the shared [nginx repository](https://hub.docker.com/_/nginx/) + and its [tags](https://hub.docker.com/r/library/nginx/tags/) +service: | + A [service](/engine/swarm/how-swarm-mode-works/services/) is the definition of how + you want to run your application containers in a swarm. At the most basic level + a service defines which container image to run in the swarm and which commands + to run in the container. For orchestration purposes, the service defines the + "desired state", meaning how many containers to run as tasks and constraints for + deploying the containers. - Frequently a service is a microservice within the context of some larger - application. Examples of services might include an HTTP server, a database, or - any other type of executable program that you wish to run in a distributed - environment. -- term: service discovery - def: | - Swarm mode [service discovery](/engine/swarm/networking/#use-swarm-mode-service-discovery) is a DNS component - internal to the swarm that automatically assigns each service on an overlay - network in the swarm a VIP and DNS entry. Containers on the network share DNS - mappings for the service via gossip so any container on the network can access - the service via its service name. + Frequently a service is a microservice within the context of some larger + application. Examples of services might include an HTTP server, a database, or + any other type of executable program that you wish to run in a distributed + environment. +service discovery: | + Swarm mode [service discovery](/engine/swarm/networking/#use-swarm-mode-service-discovery) is a DNS component + internal to the swarm that automatically assigns each service on an overlay + network in the swarm a VIP and DNS entry. Containers on the network share DNS + mappings for the service via gossip so any container on the network can access + the service via its service name. - You don’t need to expose service-specific ports to make the service available to - other services on the same overlay network. The swarm’s internal load balancer - automatically distributes requests to the service VIP among the active tasks. -- term: swarm - def: | - A [swarm](/engine/swarm/) is a cluster of one or more Docker Engines running in [swarm mode](#swarm-mode). -- term: Docker Swarm - def: | - Do not confuse [Docker Swarm](https://github.com/docker/swarm) with the [swarm mode](#swarm-mode) features in Docker Engine. + You don’t need to expose service-specific ports to make the service available to + other services on the same overlay network. The swarm’s internal load balancer + automatically distributes requests to the service VIP among the active tasks. +swarm: | + A [swarm](/engine/swarm/) is a cluster of one or more Docker Engines running in [swarm mode](#swarm-mode). +Docker Swarm: | + Do not confuse [Docker Swarm](https://github.com/docker/swarm) with the [swarm mode](#swarm-mode) features in Docker Engine. - Docker Swarm is the name of a standalone native clustering tool for Docker. - Docker Swarm pools together several Docker hosts and exposes them as a single - virtual Docker host. It serves the standard Docker API, so any tool that already - works with Docker can now transparently scale up to multiple hosts. + Docker Swarm is the name of a standalone native clustering tool for Docker. + Docker Swarm pools together several Docker hosts and exposes them as a single + virtual Docker host. It serves the standard Docker API, so any tool that already + works with Docker can now transparently scale up to multiple hosts. - *Also known as : docker-swarm* -- term: swarm mode - def: | - [Swarm mode](/engine/swarm/) refers to cluster management and orchestration - features embedded in Docker Engine. When you initialize a new swarm (cluster) or - join nodes to a swarm, the Docker Engine runs in swarm mode. -- term: tag - def: | - A tag is a label applied to a Docker image in a [repository](#repository). - tags are how various images in a repository are distinguished from each other. + *Also known as : docker-swarm* +swarm mode: | + [Swarm mode](/engine/swarm/) refers to cluster management and orchestration + features embedded in Docker Engine. When you initialize a new swarm (cluster) or + join nodes to a swarm, the Docker Engine runs in swarm mode. +tag: | + A tag is a label applied to a Docker image in a [repository](#repository). + tags are how various images in a repository are distinguished from each other. - *Note : This label is not related to the key=value labels set for docker daemon* -- term: task - def: | - A [task](/engine/swarm/how-swarm-mode-works/services/#/tasks-and-scheduling) is the - atomic unit of scheduling within a swarm. A task carries a Docker container and - the commands to run inside the container. Manager nodes assign tasks to worker - nodes according to the number of replicas set in the service scale. + *Note : This label is not related to the key=value labels set for docker daemon* +task: | + A [task](/engine/swarm/how-swarm-mode-works/services/#/tasks-and-scheduling) is the + atomic unit of scheduling within a swarm. A task carries a Docker container and + the commands to run inside the container. Manager nodes assign tasks to worker + nodes according to the number of replicas set in the service scale. - The diagram below illustrates the relationship of services to tasks and - containers. + The diagram below illustrates the relationship of services to tasks and + containers. - ![services diagram](/engine/swarm/images/services-diagram.png) -- term: Toolbox - def: | - [Docker Toolbox](/toolbox/overview/) is a legacy - installer for Mac and Windows users. It uses Oracle VirtualBox for - virtualization. + ![services diagram](/engine/swarm/images/services-diagram.png) +Toolbox: | + [Docker Toolbox](/toolbox/overview/) is a legacy + installer for Mac and Windows users. It uses Oracle VirtualBox for + virtualization. - For Macs running OS X El Capitan 10.11 and newer macOS releases, [Docker for - Mac](/docker-for-mac/) is the better solution. + For Macs running OS X El Capitan 10.11 and newer macOS releases, [Docker for + Mac](/docker-for-mac/) is the better solution. - For Windows 10 systems that support Microsoft Hyper-V (Professional, Enterprise - and Education), [Docker for - Windows](/docker-for-windows/) is the better solution. -- term: Union file system - def: | - 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 Windows 10 systems that support Microsoft Hyper-V (Professional, Enterprise + and Education), [Docker for + Windows](/docker-for-windows/) is the better solution. +Union file system: | + 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](/engine/userguide/storagedriver/aufs-driver/), - [Docker and Btrfs in - practice](/engine/userguide/storagedriver/btrfs-driver/), - and [Docker and OverlayFS in - practice](/engine/userguide/storagedriver/overlayfs-driver/) + For more on Docker and union file systems, see [Docker and AUFS in + practice](/engine/userguide/storagedriver/aufs-driver/), + [Docker and Btrfs in + practice](/engine/userguide/storagedriver/btrfs-driver/), + and [Docker and OverlayFS in + practice](/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). -- term: virtual machine - def: | - A virtual machine is a program that emulates a complete computer and imitates dedicated hardware. - It shares physical hardware resources with other users but isolates the operating system. The - end user has the same experience on a Virtual Machine as they would have on dedicated hardware. + 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: | + A virtual machine is a program that emulates a complete computer and imitates dedicated hardware. + It shares physical hardware resources with other users but isolates the operating system. The + end user has the same experience on a Virtual Machine as they would have on dedicated hardware. - Compared to containers, a virtual machine is heavier to run, provides more isolation, - gets its own set of resources and does minimal sharing. + Compared to containers, a virtual machine is heavier to run, provides more isolation, + gets its own set of resources and does minimal sharing. - *Also known as : VM* + *Also known as : VM* diff --git a/glossary.md b/glossary.md index dafe7e48ea..947c9ff4c8 100644 --- a/glossary.md +++ b/glossary.md @@ -2,12 +2,23 @@ title: "Docker Glossary" description: "Glossary of terms used around Docker" keywords: "glossary, docker, terms, definitions" -skip-right-nav: true +notoc: true --- -{% for entry in site.data.glossary.glossary %} -## {{ entry.term }} + + +{% for entry in site.data.glossary %}{% assign newEntry="true" %} + +## {{ entry[0] }} + +{{ entry[1] }} + + - {% endfor %} diff --git a/js/menu.js b/js/menu.js index 64b1f2c31c..7cbe2060c1 100644 --- a/js/menu.js +++ b/js/menu.js @@ -12,12 +12,52 @@ var scoreForURLMatch = 5; var scoreForKeywordMatch = 3; var scoreForDescriptionMatch = 1 +function makeSafeForCSS(name) { + return name.replace(/[^a-z0-9]/g, function(s) { + var c = s.charCodeAt(0); + if (c == 32) return '-'; + if (c >= 65 && c <= 90) return '_' + s.toLowerCase(); + return '__' + ('000' + c.toString(16)).slice(-4); + }); +} + +function showRelated(term) +{ + $("#button-"+term).css("display","none"); + $("#topics-"+term).css("display","block"); +} + +function drawRelated(liArray,term) +{ + var output = new Array(); + output.push('Related topics...'); + output.push('