github.com/pwn-term/docker@v0.0.0-20210616085119-6e977cce2565/cli/docs/reference/glossary.md (about)

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