github.com/yogeshlonkar/moby@v1.13.2-0.20201203103638-c0b64beaea94/docs/reference/glossary.md (about)

     1  ---
     2  title: "Docker Glossary"
     3  description: "Glossary of terms used around Docker"
     4  keywords: "glossary, docker, terms, definitions"
     5  ---
     6  
     7  <!-- This file is maintained within the docker/docker Github
     8       repository at https://github.com/docker/docker/. Make all
     9       pull requests against that repo. If you see this file in
    10       another repository, consider it read-only there, as it will
    11       periodically be overwritten by the definitive file. Pull
    12       requests which include edits to this file in other repositories
    13       will be rejected.
    14  -->
    15  
    16  # Glossary
    17  
    18  A list of terms used around the Docker project.
    19  
    20  ## aufs
    21  
    22  aufs (advanced multi layered unification filesystem) is a Linux [filesystem](#filesystem) that
    23  Docker supports as a storage backend. It implements the
    24  [union mount](http://en.wikipedia.org/wiki/Union_mount) for Linux file systems.
    25  
    26  ## base image
    27  
    28  An image that has no parent is a **base image**.
    29  
    30  ## boot2docker
    31  
    32  [boot2docker](http://boot2docker.io/) is a lightweight Linux distribution made
    33  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.
    34  
    35  ## bridge
    36  
    37  In terms of generic networking, a bridge is a Link Layer device which forwards
    38  traffic between network segments. A bridge can be a hardware device or a
    39  software device running within a host machine's kernel.
    40  
    41  In terms of Docker, a bridge network uses a software bridge which allows
    42  containers connected to the same bridge network to communicate, while providing
    43  isolation from containers which are not connected to that bridge network.
    44  The Docker bridge driver automatically installs rules in the host machine so
    45  that containers on different bridge networks cannot communicate directly with
    46  each other.
    47  
    48  The default bridge network, which is also named `bridge`, behaves differently
    49  from user-defined bridge networks. Containers connected to the default `bridge`
    50  network can communicate with each other across the bridge by IP address but
    51  cannot resolve each other's container name to an IP address unless they are
    52  explicitly linked using the `--link` flag to `docker run`.
    53  
    54  For more information about Docker networking, see
    55  [Understand container communication](https://docs.docker.com/engine/userguide/networking/default_network/container-communication/).
    56  
    57  ## btrfs
    58  
    59  btrfs (B-tree file system) is a Linux [filesystem](#filesystem) that Docker
    60  supports as a storage backend. It is a [copy-on-write](http://en.wikipedia.org/wiki/Copy-on-write)
    61  filesystem.
    62  
    63  ## build
    64  
    65  build is the process of building Docker images using a [Dockerfile](#dockerfile).
    66  The build uses a Dockerfile and a "context". The context is the set of files in the
    67  directory in which the image is built.
    68  
    69  ## cgroups
    70  
    71  cgroups is a Linux kernel feature that limits, accounts for, and isolates
    72  the resource usage (CPU, memory, disk I/O, network, etc.) of a collection
    73  of processes. Docker relies on cgroups to control and isolate resource limits.
    74  
    75  *Also known as : control groups*
    76  
    77  ## Compose
    78  
    79  [Compose](https://github.com/docker/compose) is a tool for defining and
    80  running complex applications with Docker. With compose, you define a
    81  multi-container application in a single file, then spin your
    82  application up in a single command which does everything that needs to
    83  be done to get it running.
    84  
    85  *Also known as : docker-compose, fig*
    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  
   109  ## container
   110  
   111  A container is a runtime instance of a [docker image](#image).
   112  
   113  A Docker container consists of
   114  
   115  - A Docker image
   116  - Execution environment
   117  - A standard set of instructions
   118  
   119  The concept is borrowed from Shipping Containers, which define a standard to ship
   120  goods globally. Docker defines a standard to ship software.
   121  
   122  ## data volume
   123  
   124  A data volume is a specially-designated directory within one or more containers
   125  that bypasses the Union File System. Data volumes are designed to persist data,
   126  independent of the container's life cycle. Docker therefore never automatically
   127  delete volumes when you remove a container, nor will it "garbage collect"
   128  volumes that are no longer referenced by a container.
   129  
   130  
   131  ## Docker
   132  
   133  The term Docker can refer to
   134  
   135  - The Docker project as a whole, which is a platform for developers and sysadmins to
   136  develop, ship, and run applications
   137  - The docker daemon process running on the host which manages images and containers
   138  
   139  
   140  ## Docker for Mac
   141  
   142  [Docker for Mac](https://docs.docker.com/docker-for-mac/) is an easy-to-install,
   143  lightweight Docker development environment designed specifically for the Mac. A
   144  native Mac application, Docker for Mac uses the macOS Hypervisor framework,
   145  networking, and filesystem. It's the best solution if you want to build, debug,
   146  test, package, and ship Dockerized applications on a Mac. Docker for Mac
   147  supersedes [Docker Toolbox](#toolbox) as state-of-the-art Docker on macOS.
   148  
   149  
   150  ## Docker for Windows
   151  
   152  [Docker for Windows](https://docs.docker.com/docker-for-windows/) is an
   153  easy-to-install, lightweight Docker development environment designed
   154  specifically for Windows 10 systems that support Microsoft Hyper-V
   155  (Professional, Enterprise and Education). Docker for Windows uses Hyper-V for
   156  virtualization, and runs as a native Windows app. It works with Windows Server
   157  2016, and gives you the ability to set up and run Windows containers as well as
   158  the standard Linux containers, with an option to switch between the two. Docker
   159  for Windows is the best solution if you want to build, debug, test, package, and
   160  ship Dockerized applications from Windows machines. Docker for Windows
   161  supersedes [Docker Toolbox](#toolbox) as state-of-the-art Docker on Windows.
   162  
   163  ## Docker Hub
   164  
   165  The [Docker Hub](https://hub.docker.com/) is a centralized resource for working with
   166  Docker and its components. It provides the following services:
   167  
   168  - Docker image hosting
   169  - User authentication
   170  - Automated image builds and work-flow tools such as build triggers and web hooks
   171  - Integration with GitHub and Bitbucket
   172  
   173  
   174  ## Dockerfile
   175  
   176  A Dockerfile is a text document that contains all the commands you would
   177  normally execute manually in order to build a Docker image. Docker can
   178  build images automatically by reading the instructions from a Dockerfile.
   179  
   180  ## filesystem
   181  
   182  A file system is the method an operating system uses to name files
   183  and assign them locations for efficient storage and retrieval.
   184  
   185  Examples :
   186  
   187  - Linux : ext4, aufs, btrfs, zfs
   188  - Windows : NTFS
   189  - macOS : HFS+
   190  
   191  ## image
   192  
   193  Docker images are the basis of [containers](#container). An Image is an
   194  ordered collection of root filesystem changes and the corresponding
   195  execution parameters for use within a container runtime. An image typically
   196  contains a union of layered filesystems stacked on top of each other. An image
   197  does not have state and it never changes.
   198  
   199  ## libcontainer
   200  
   201  libcontainer provides a native Go implementation for creating containers with
   202  namespaces, cgroups, capabilities, and filesystem access controls. It allows
   203  you to manage the lifecycle of the container performing additional operations
   204  after the container is created.
   205  
   206  ## libnetwork
   207  
   208  libnetwork provides a native Go implementation for creating and managing container
   209  network namespaces and other network resources. It manage the networking lifecycle
   210  of the container performing additional operations after the container is created.
   211  
   212  ## link
   213  
   214  links provide a legacy interface to connect Docker containers running on the
   215  same host to each other without exposing the hosts' network ports. Use the
   216  Docker networks feature instead.
   217  
   218  ## Machine
   219  
   220  [Machine](https://github.com/docker/machine) is a Docker tool which
   221  makes it really easy to create Docker hosts on  your computer, on
   222  cloud providers and inside your own data center. It creates servers,
   223  installs Docker on them, then configures the Docker client to talk to them.
   224  
   225  *Also known as : docker-machine*
   226  
   227  ## node
   228  
   229  A [node](https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/) is a physical or virtual
   230  machine running an instance of the Docker Engine in swarm mode.
   231  
   232  **Manager nodes** perform swarm management and orchestration duties. By default
   233  manager nodes are also worker nodes.
   234  
   235  **Worker nodes** execute tasks.
   236  
   237  ## overlay network driver
   238  
   239  Overlay network driver provides out of the box multi-host network connectivity
   240  for docker containers in a cluster.
   241  
   242  ## overlay storage driver
   243  
   244  OverlayFS is a [filesystem](#filesystem) service for Linux which implements a
   245  [union mount](http://en.wikipedia.org/wiki/Union_mount) for other file systems.
   246  It is supported by the Docker daemon as a storage driver.
   247  
   248  ## registry
   249  
   250  A Registry is a hosted service containing [repositories](#repository) of [images](#image)
   251  which responds to the Registry API.
   252  
   253  The default registry can be accessed using a browser at [Docker Hub](#docker-hub)
   254  or using the `docker search` command.
   255  
   256  ## repository
   257  
   258  A repository is a set of Docker images. A repository can be shared by pushing it
   259  to a [registry](#registry) server. The different images in the repository can be
   260  labeled using [tags](#tag).
   261  
   262  Here is an example of the shared [nginx repository](https://hub.docker.com/_/nginx/)
   263  and its [tags](https://hub.docker.com/r/library/nginx/tags/)
   264  
   265  
   266  ## service
   267  
   268  A [service](https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/) is the definition of how
   269  you want to run your application containers in a swarm. At the most basic level
   270  a service  defines which container image to run in the swarm and which commands
   271  to run in the container. For orchestration purposes, the service defines the
   272  "desired state", meaning how many containers to run as tasks and constraints for
   273  deploying the containers.
   274  
   275  Frequently a service is a microservice within the context of some larger
   276  application. Examples of services might include an HTTP server, a database, or
   277  any other type of executable program that you wish to run in a distributed
   278  environment.
   279  
   280  ## service discovery
   281  
   282  Swarm mode [service discovery](https://docs.docker.com/engine/swarm/networking/#use-swarm-mode-service-discovery) is a DNS component
   283  internal to the swarm that automatically assigns each service on an overlay
   284  network in the swarm a VIP and DNS entry. Containers on the network share DNS
   285  mappings for the service via gossip so any container on the network can access
   286  the service via its service name.
   287  
   288  You don’t need to expose service-specific ports to make the service available to
   289  other services on the same overlay network. The swarm’s internal load balancer
   290  automatically distributes requests to the service VIP among the active tasks.
   291  
   292  ## swarm
   293  
   294  A [swarm](https://docs.docker.com/engine/swarm/) is a cluster of one or more Docker Engines running in [swarm mode](#swarm-mode).
   295  
   296  ## Docker Swarm
   297  
   298  Do not confuse [Docker Swarm](https://github.com/docker/swarm) with the [swarm mode](#swarm-mode) features in Docker Engine.
   299  
   300  Docker Swarm is the name of a standalone native clustering tool for Docker.
   301  Docker Swarm pools together several Docker hosts and exposes them as a single
   302  virtual Docker host. It serves the standard Docker API, so any tool that already
   303  works with Docker can now transparently scale up to multiple hosts.
   304  
   305  *Also known as : docker-swarm*
   306  
   307  ## swarm mode
   308  
   309  [Swarm mode](https://docs.docker.com/engine/swarm/) refers to cluster management and orchestration
   310  features embedded in Docker Engine. When you initialize a new swarm (cluster) or
   311  join nodes to a swarm, the Docker Engine runs in swarm mode.
   312  
   313  ## tag
   314  
   315  A tag is a label applied to a Docker image in a [repository](#repository).
   316  tags are how various images in a repository are distinguished from each other.
   317  
   318  *Note : This label is not related to the key=value labels set for docker daemon*
   319  
   320  ## task
   321  
   322  A [task](https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/#/tasks-and-scheduling) is the
   323  atomic unit of scheduling within a swarm. A task carries a Docker container and
   324  the commands to run inside the container. Manager nodes assign tasks to worker
   325  nodes according to the number of replicas set in the service scale.
   326  
   327  The diagram below illustrates the relationship of services to tasks and
   328  containers.
   329  
   330  ![services diagram](https://docs.docker.com/engine/swarm/images/services-diagram.png)
   331  
   332  ## Toolbox
   333  
   334  [Docker Toolbox](https://docs.docker.com/toolbox/overview/) is a legacy
   335  installer for Mac and Windows users. It uses Oracle VirtualBox for
   336  virtualization.
   337  
   338  For Macs running OS X El Capitan 10.11 and newer macOS releases, [Docker for
   339  Mac](https://docs.docker.com/docker-for-mac/) is the better solution.
   340  
   341  For Windows 10 systems that support Microsoft Hyper-V (Professional, Enterprise
   342  and Education), [Docker for
   343  Windows](https://docs.docker.com/docker-for-windows/) is the better solution.
   344  
   345  ## Union file system
   346  
   347  Union file systems implement a [union
   348  mount](https://en.wikipedia.org/wiki/Union_mount) and operate by creating
   349  layers. Docker uses union file systems in conjunction with
   350  [copy-on-write](#copy-on-write) techniques to provide the building blocks for
   351  containers, making them very lightweight and fast.
   352  
   353  For more on Docker and union file systems, see [Docker and AUFS in
   354  practice](https://docs.docker.com/engine/userguide/storagedriver/aufs-driver/),
   355  [Docker and Btrfs in
   356  practice](https://docs.docker.com/engine/userguide/storagedriver/btrfs-driver/),
   357  and [Docker and OverlayFS in
   358  practice](https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/)
   359  
   360  Example implementations of union file systems are
   361  [UnionFS](https://en.wikipedia.org/wiki/UnionFS),
   362  [AUFS](https://en.wikipedia.org/wiki/Aufs), and
   363  [Btrfs](https://btrfs.wiki.kernel.org/index.php/Main_Page).
   364  
   365  ## virtual machine
   366  
   367  A virtual machine is a program that emulates a complete computer and imitates dedicated hardware.
   368  It shares physical hardware resources with other users but isolates the operating system. The
   369  end user has the same experience on a Virtual Machine as they would have on dedicated hardware.
   370  
   371  Compared to containers, a virtual machine is heavier to run, provides more isolation,
   372  gets its own set of resources and does minimal sharing.
   373  
   374  *Also known as : VM*