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  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*