github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/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](https://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](https://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](https://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](https://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*