github.com/vieux/docker@v0.6.3-0.20161004191708-e097c2a938c7/man/dockerd.8.md (about) 1 % DOCKER(8) Docker User Manuals 2 % Shishir Mahajan 3 % SEPTEMBER 2015 4 # NAME 5 dockerd - Enable daemon mode 6 7 # SYNOPSIS 8 **dockerd** 9 [**--add-runtime**[=*[]*]] 10 [**--api-cors-header**=[=*API-CORS-HEADER*]] 11 [**--authorization-plugin**[=*[]*]] 12 [**-b**|**--bridge**[=*BRIDGE*]] 13 [**--bip**[=*BIP*]] 14 [**--cgroup-parent**[=*[]*]] 15 [**--cluster-store**[=*[]*]] 16 [**--cluster-advertise**[=*[]*]] 17 [**--cluster-store-opt**[=*map[]*]] 18 [**--config-file**[=*/etc/docker/daemon.json*]] 19 [**--containerd**[=*SOCKET-PATH*]] 20 [**-D**|**--debug**] 21 [**--default-gateway**[=*DEFAULT-GATEWAY*]] 22 [**--default-gateway-v6**[=*DEFAULT-GATEWAY-V6*]] 23 [**--default-ulimit**[=*[]*]] 24 [**--disable-legacy-registry**] 25 [**--dns**[=*[]*]] 26 [**--dns-opt**[=*[]*]] 27 [**--dns-search**[=*[]*]] 28 [**--exec-opt**[=*[]*]] 29 [**--exec-root**[=*/var/run/docker*]] 30 [**--fixed-cidr**[=*FIXED-CIDR*]] 31 [**--fixed-cidr-v6**[=*FIXED-CIDR-V6*]] 32 [**-G**|**--group**[=*docker*]] 33 [**-g**|**--graph**[=*/var/lib/docker*]] 34 [**-H**|**--host**[=*[]*]] 35 [**--help**] 36 [**--icc**[=*true*]] 37 [**--init**[=*false*]] 38 [**--init-path**[=*""*]] 39 [**--insecure-registry**[=*[]*]] 40 [**--ip**[=*0.0.0.0*]] 41 [**--ip-forward**[=*true*]] 42 [**--ip-masq**[=*true*]] 43 [**--iptables**[=*true*]] 44 [**--ipv6**] 45 [**--isolation**[=*default*]] 46 [**-l**|**--log-level**[=*info*]] 47 [**--label**[=*[]*]] 48 [**--live-restore**[=*false*]] 49 [**--log-driver**[=*json-file*]] 50 [**--log-opt**[=*map[]*]] 51 [**--mtu**[=*0*]] 52 [**--max-concurrent-downloads**[=*3*]] 53 [**--max-concurrent-uploads**[=*5*]] 54 [**-p**|**--pidfile**[=*/var/run/docker.pid*]] 55 [**--raw-logs**] 56 [**--registry-mirror**[=*[]*]] 57 [**-s**|**--storage-driver**[=*STORAGE-DRIVER*]] 58 [**--selinux-enabled**] 59 [**--storage-opt**[=*[]*]] 60 [**--swarm-default-advertise-addr**[=*IP|INTERFACE*]] 61 [**--tls**] 62 [**--tlscacert**[=*~/.docker/ca.pem*]] 63 [**--tlscert**[=*~/.docker/cert.pem*]] 64 [**--tlskey**[=*~/.docker/key.pem*]] 65 [**--tlsverify**] 66 [**--userland-proxy**[=*true*]] 67 [**--userns-remap**[=*default*]] 68 69 # DESCRIPTION 70 **dockerd** is used for starting the Docker daemon(i.e., to command the daemon to manage images, 71 containers etc.) So **dockerd** is a server, as a daemon. 72 73 To run the Docker daemon you can specify **dockerd**. 74 You can check the daemon options using **dockerd --help**. 75 Daemon options should be specified after the **dockerd** keyword in the following 76 format. 77 78 **dockerd [OPTIONS]** 79 80 # OPTIONS 81 82 **--add-runtime**=[] 83 Set additional OCI compatible runtime. 84 85 **--api-cors-header**="" 86 Set CORS headers in the remote API. Default is cors disabled. Give urls like "http://foo, http://bar, ...". Give "*" to allow all. 87 88 **--authorization-plugin**="" 89 Set authorization plugins to load 90 91 **-b**, **--bridge**="" 92 Attach containers to a pre\-existing network bridge; use 'none' to disable container networking 93 94 **--bip**="" 95 Use the provided CIDR notation address for the dynamically created bridge (docker0); Mutually exclusive of \-b 96 97 **--cgroup-parent**="" 98 Set parent cgroup for all containers. Default is "/docker" for fs cgroup driver and "system.slice" for systemd cgroup driver. 99 100 **--cluster-store**="" 101 URL of the distributed storage backend 102 103 **--cluster-advertise**="" 104 Specifies the 'host:port' or `interface:port` combination that this particular 105 daemon instance should use when advertising itself to the cluster. The daemon 106 is reached through this value. 107 108 **--cluster-store-opt**="" 109 Specifies options for the Key/Value store. 110 111 **--config-file**="/etc/docker/daemon.json" 112 Specifies the JSON file path to load the configuration from. 113 114 **--containerd**="" 115 Path to containerd socket. 116 117 **-D**, **--debug**=*true*|*false* 118 Enable debug mode. Default is false. 119 120 **--default-gateway**="" 121 IPv4 address of the container default gateway; this address must be part of the bridge subnet (which is defined by \-b or \--bip) 122 123 **--default-gateway-v6**="" 124 IPv6 address of the container default gateway 125 126 **--default-ulimit**=[] 127 Default ulimits for containers. 128 129 **--disable-legacy-registry**=*true*|*false* 130 Disable contacting legacy registries 131 132 **--dns**="" 133 Force Docker to use specific DNS servers 134 135 **--dns-opt**="" 136 DNS options to use. 137 138 **--dns-search**=[] 139 DNS search domains to use. 140 141 **--exec-opt**=[] 142 Set runtime execution options. See RUNTIME EXECUTION OPTIONS. 143 144 **--exec-root**="" 145 Path to use as the root of the Docker execution state files. Default is `/var/run/docker`. 146 147 **--fixed-cidr**="" 148 IPv4 subnet for fixed IPs (e.g., 10.20.0.0/16); this subnet must be nested in the bridge subnet (which is defined by \-b or \-\-bip) 149 150 **--fixed-cidr-v6**="" 151 IPv6 subnet for global IPv6 addresses (e.g., 2a00:1450::/64) 152 153 **-G**, **--group**="" 154 Group to assign the unix socket specified by -H when running in daemon mode. 155 use '' (the empty string) to disable setting of a group. Default is `docker`. 156 157 **-g**, **--graph**="" 158 Path to use as the root of the Docker runtime. Default is `/var/lib/docker`. 159 160 **-H**, **--host**=[*unix:///var/run/docker.sock*]: tcp://[host:port] to bind or 161 unix://[/path/to/socket] to use. 162 The socket(s) to bind to in daemon mode specified using one or more 163 tcp://host:port, unix:///path/to/socket, fd://* or fd://socketfd. 164 165 **--help** 166 Print usage statement 167 168 **--icc**=*true*|*false* 169 Allow unrestricted inter\-container and Docker daemon host communication. If disabled, containers can still be linked together using the **--link** option (see **docker-run(1)**). Default is true. 170 171 **--init** 172 Run an init process inside containers for signal forwarding and process reaping. 173 174 **--init-path** 175 Path to the docker-init binary. 176 177 **--insecure-registry**=[] 178 Enable insecure registry communication, i.e., enable un-encrypted and/or untrusted communication. 179 180 List of insecure registries can contain an element with CIDR notation to specify a whole subnet. Insecure registries accept HTTP and/or accept HTTPS with certificates from unknown CAs. 181 182 Enabling `--insecure-registry` is useful when running a local registry. However, because its use creates security vulnerabilities it should ONLY be enabled for testing purposes. For increased security, users should add their CA to their system's list of trusted CAs instead of using `--insecure-registry`. 183 184 **--ip**="" 185 Default IP address to use when binding container ports. Default is `0.0.0.0`. 186 187 **--ip-forward**=*true*|*false* 188 Enables IP forwarding on the Docker host. The default is `true`. This flag interacts with the IP forwarding setting on your host system's kernel. If your system has IP forwarding disabled, this setting enables it. If your system has IP forwarding enabled, setting this flag to `--ip-forward=false` has no effect. 189 190 This setting will also enable IPv6 forwarding if you have both `--ip-forward=true` and `--fixed-cidr-v6` set. Note that this may reject Router Advertisements and interfere with the host's existing IPv6 configuration. For more information, please consult the documentation about "Advanced Networking - IPv6". 191 192 **--ip-masq**=*true*|*false* 193 Enable IP masquerading for bridge's IP range. Default is true. 194 195 **--iptables**=*true*|*false* 196 Enable Docker's addition of iptables rules. Default is true. 197 198 **--ipv6**=*true*|*false* 199 Enable IPv6 support. Default is false. Docker will create an IPv6-enabled bridge with address fe80::1 which will allow you to create IPv6-enabled containers. Use together with `--fixed-cidr-v6` to provide globally routable IPv6 addresses. IPv6 forwarding will be enabled if not used with `--ip-forward=false`. This may collide with your host's current IPv6 settings. For more information please consult the documentation about "Advanced Networking - IPv6". 200 201 **--isolation**="*default*" 202 Isolation specifies the type of isolation technology used by containers. Note 203 that the default on Windows server is `process`, and the default on Windows client 204 is `hyperv`. Linux only supports `default`. 205 206 **-l**, **--log-level**="*debug*|*info*|*warn*|*error*|*fatal*" 207 Set the logging level. Default is `info`. 208 209 **--label**="[]" 210 Set key=value labels to the daemon (displayed in `docker info`) 211 212 **--live-restore**=*false* 213 Enable live restore of running containers when the daemon starts so that they are not restarted. 214 215 **--log-driver**="*json-file*|*syslog*|*journald*|*gelf*|*fluentd*|*awslogs*|*splunk*|*etwlogs*|*gcplogs*|*none*" 216 Default driver for container logs. Default is `json-file`. 217 **Warning**: `docker logs` command works only for `json-file` logging driver. 218 219 **--log-opt**=[] 220 Logging driver specific options. 221 222 **--mtu**=*0* 223 Set the containers network mtu. Default is `0`. 224 225 **--max-concurrent-downloads**=*3* 226 Set the max concurrent downloads for each pull. Default is `3`. 227 228 **--max-concurrent-uploads**=*5* 229 Set the max concurrent uploads for each push. Default is `5`. 230 231 **-p**, **--pidfile**="" 232 Path to use for daemon PID file. Default is `/var/run/docker.pid` 233 234 **--raw-logs** 235 Output daemon logs in full timestamp format without ANSI coloring. If this flag is not set, 236 the daemon outputs condensed, colorized logs if a terminal is detected, or full ("raw") 237 output otherwise. 238 239 **--registry-mirror**=*<scheme>://<host>* 240 Prepend a registry mirror to be used for image pulls. May be specified multiple times. 241 242 **-s**, **--storage-driver**="" 243 Force the Docker runtime to use a specific storage driver. 244 245 **--selinux-enabled**=*true*|*false* 246 Enable selinux support. Default is false. 247 248 **--storage-opt**=[] 249 Set storage driver options. See STORAGE DRIVER OPTIONS. 250 251 **--swarm-default-advertise-addr**=*IP|INTERFACE* 252 Set default address or interface for swarm to advertise as its externally-reachable address to other cluster 253 members. This can be a hostname, an IP address, or an interface such as `eth0`. A port cannot be specified with 254 this option. 255 256 **--tls**=*true*|*false* 257 Use TLS; implied by --tlsverify. Default is false. 258 259 **--tlscacert**=*~/.docker/ca.pem* 260 Trust certs signed only by this CA. 261 262 **--tlscert**=*~/.docker/cert.pem* 263 Path to TLS certificate file. 264 265 **--tlskey**=*~/.docker/key.pem* 266 Path to TLS key file. 267 268 **--tlsverify**=*true*|*false* 269 Use TLS and verify the remote (daemon: verify client, client: verify daemon). 270 Default is false. 271 272 **--userland-proxy**=*true*|*false* 273 Rely on a userland proxy implementation for inter-container and outside-to-container loopback communications. Default is true. 274 275 **--userns-remap**=*default*|*uid:gid*|*user:group*|*user*|*uid* 276 Enable user namespaces for containers on the daemon. Specifying "default" will cause a new user and group to be created to handle UID and GID range remapping for the user namespace mappings used for contained processes. Specifying a user (or uid) and optionally a group (or gid) will cause the daemon to lookup the user and group's subordinate ID ranges for use as the user namespace mappings for contained processes. 277 278 # STORAGE DRIVER OPTIONS 279 280 Docker uses storage backends (known as "graphdrivers" in the Docker 281 internals) to create writable containers from images. Many of these 282 backends use operating system level technologies and can be 283 configured. 284 285 Specify options to the storage backend with **--storage-opt** flags. The 286 backends that currently take options are *devicemapper*, *zfs* and *btrfs*. 287 Options for *devicemapper* are prefixed with *dm*, options for *zfs* 288 start with *zfs* and options for *btrfs* start with *btrfs*. 289 290 Specifically for devicemapper, the default is a "loopback" model which 291 requires no pre-configuration, but is extremely inefficient. Do not 292 use it in production. 293 294 To make the best use of Docker with the devicemapper backend, you must 295 have a recent version of LVM. Use `lvm` to create a thin pool; for 296 more information see `man lvmthin`. Then, use `--storage-opt 297 dm.thinpooldev` to tell the Docker engine to use that pool for 298 allocating images and container snapshots. 299 300 ## Devicemapper options 301 302 #### dm.thinpooldev 303 304 Specifies a custom block storage device to use for the thin pool. 305 306 If using a block device for device mapper storage, it is best to use `lvm` 307 to create and manage the thin-pool volume. This volume is then handed to Docker 308 to exclusively create snapshot volumes needed for images and containers. 309 310 Managing the thin-pool outside of Engine makes for the most feature-rich 311 method of having Docker utilize device mapper thin provisioning as the 312 backing storage for Docker containers. The highlights of the lvm-based 313 thin-pool management feature include: automatic or interactive thin-pool 314 resize support, dynamically changing thin-pool features, automatic thinp 315 metadata checking when lvm activates the thin-pool, etc. 316 317 As a fallback if no thin pool is provided, loopback files are 318 created. Loopback is very slow, but can be used without any 319 pre-configuration of storage. It is strongly recommended that you do 320 not use loopback in production. Ensure your Engine daemon has a 321 `--storage-opt dm.thinpooldev` argument provided. 322 323 Example use: 324 325 $ dockerd \ 326 --storage-opt dm.thinpooldev=/dev/mapper/thin-pool 327 328 #### dm.basesize 329 330 Specifies the size to use when creating the base device, which limits 331 the size of images and containers. The default value is 10G. Note, 332 thin devices are inherently "sparse", so a 10G device which is mostly 333 empty doesn't use 10 GB of space on the pool. However, the filesystem 334 will use more space for base images the larger the device 335 is. 336 337 The base device size can be increased at daemon restart which will allow 338 all future images and containers (based on those new images) to be of the 339 new base device size. 340 341 Example use: `dockerd --storage-opt dm.basesize=50G` 342 343 This will increase the base device size to 50G. The Docker daemon will throw an 344 error if existing base device size is larger than 50G. A user can use 345 this option to expand the base device size however shrinking is not permitted. 346 347 This value affects the system-wide "base" empty filesystem that may already 348 be initialized and inherited by pulled images. Typically, a change to this 349 value requires additional steps to take effect: 350 351 $ sudo service docker stop 352 $ sudo rm -rf /var/lib/docker 353 $ sudo service docker start 354 355 Example use: `dockerd --storage-opt dm.basesize=20G` 356 357 #### dm.fs 358 359 Specifies the filesystem type to use for the base device. The 360 supported options are `ext4` and `xfs`. The default is `ext4`. 361 362 Example use: `dockerd --storage-opt dm.fs=xfs` 363 364 #### dm.mkfsarg 365 366 Specifies extra mkfs arguments to be used when creating the base device. 367 368 Example use: `dockerd --storage-opt "dm.mkfsarg=-O ^has_journal"` 369 370 #### dm.mountopt 371 372 Specifies extra mount options used when mounting the thin devices. 373 374 Example use: `dockerd --storage-opt dm.mountopt=nodiscard` 375 376 #### dm.use_deferred_removal 377 378 Enables use of deferred device removal if `libdm` and the kernel driver 379 support the mechanism. 380 381 Deferred device removal means that if device is busy when devices are 382 being removed/deactivated, then a deferred removal is scheduled on 383 device. And devices automatically go away when last user of the device 384 exits. 385 386 For example, when a container exits, its associated thin device is removed. If 387 that device has leaked into some other mount namespace and can't be removed, 388 the container exit still succeeds and this option causes the system to schedule 389 the device for deferred removal. It does not wait in a loop trying to remove a busy 390 device. 391 392 Example use: `dockerd --storage-opt dm.use_deferred_removal=true` 393 394 #### dm.use_deferred_deletion 395 396 Enables use of deferred device deletion for thin pool devices. By default, 397 thin pool device deletion is synchronous. Before a container is deleted, the 398 Docker daemon removes any associated devices. If the storage driver can not 399 remove a device, the container deletion fails and daemon returns. 400 401 `Error deleting container: Error response from daemon: Cannot destroy container` 402 403 To avoid this failure, enable both deferred device deletion and deferred 404 device removal on the daemon. 405 406 `dockerd --storage-opt dm.use_deferred_deletion=true --storage-opt dm.use_deferred_removal=true` 407 408 With these two options enabled, if a device is busy when the driver is 409 deleting a container, the driver marks the device as deleted. Later, when the 410 device isn't in use, the driver deletes it. 411 412 In general it should be safe to enable this option by default. It will help 413 when unintentional leaking of mount point happens across multiple mount 414 namespaces. 415 416 #### dm.loopdatasize 417 418 **Note**: This option configures devicemapper loopback, which should not be used in production. 419 420 Specifies the size to use when creating the loopback file for the 421 "data" device which is used for the thin pool. The default size is 422 100G. The file is sparse, so it will not initially take up 423 this much space. 424 425 Example use: `dockerd --storage-opt dm.loopdatasize=200G` 426 427 #### dm.loopmetadatasize 428 429 **Note**: This option configures devicemapper loopback, which should not be used in production. 430 431 Specifies the size to use when creating the loopback file for the 432 "metadata" device which is used for the thin pool. The default size 433 is 2G. The file is sparse, so it will not initially take up 434 this much space. 435 436 Example use: `dockerd --storage-opt dm.loopmetadatasize=4G` 437 438 #### dm.datadev 439 440 (Deprecated, use `dm.thinpooldev`) 441 442 Specifies a custom blockdevice to use for data for a 443 Docker-managed thin pool. It is better to use `dm.thinpooldev` - see 444 the documentation for it above for discussion of the advantages. 445 446 #### dm.metadatadev 447 448 (Deprecated, use `dm.thinpooldev`) 449 450 Specifies a custom blockdevice to use for metadata for a 451 Docker-managed thin pool. See `dm.datadev` for why this is 452 deprecated. 453 454 #### dm.blocksize 455 456 Specifies a custom blocksize to use for the thin pool. The default 457 blocksize is 64K. 458 459 Example use: `dockerd --storage-opt dm.blocksize=512K` 460 461 #### dm.blkdiscard 462 463 Enables or disables the use of `blkdiscard` when removing devicemapper 464 devices. This is disabled by default due to the additional latency, 465 but as a special case with loopback devices it will be enabled, in 466 order to re-sparsify the loopback file on image/container removal. 467 468 Disabling this on loopback can lead to *much* faster container removal 469 times, but it also prevents the space used in `/var/lib/docker` directory 470 from being returned to the system for other use when containers are 471 removed. 472 473 Example use: `dockerd --storage-opt dm.blkdiscard=false` 474 475 #### dm.override_udev_sync_check 476 477 By default, the devicemapper backend attempts to synchronize with the 478 `udev` device manager for the Linux kernel. This option allows 479 disabling that synchronization, to continue even though the 480 configuration may be buggy. 481 482 To view the `udev` sync support of a Docker daemon that is using the 483 `devicemapper` driver, run: 484 485 $ docker info 486 [...] 487 Udev Sync Supported: true 488 [...] 489 490 When `udev` sync support is `true`, then `devicemapper` and `udev` can 491 coordinate the activation and deactivation of devices for containers. 492 493 When `udev` sync support is `false`, a race condition occurs between 494 the `devicemapper` and `udev` during create and cleanup. The race 495 condition results in errors and failures. (For information on these 496 failures, see 497 [docker#4036](https://github.com/docker/docker/issues/4036)) 498 499 To allow the `docker` daemon to start, regardless of whether `udev` sync is 500 `false`, set `dm.override_udev_sync_check` to true: 501 502 $ dockerd --storage-opt dm.override_udev_sync_check=true 503 504 When this value is `true`, the driver continues and simply warns you 505 the errors are happening. 506 507 **Note**: The ideal is to pursue a `docker` daemon and environment 508 that does support synchronizing with `udev`. For further discussion on 509 this topic, see 510 [docker#4036](https://github.com/docker/docker/issues/4036). 511 Otherwise, set this flag for migrating existing Docker daemons to a 512 daemon with a supported environment. 513 514 #### dm.min_free_space 515 516 Specifies the min free space percent in a thin pool require for new device 517 creation to succeed. This check applies to both free data space as well 518 as free metadata space. Valid values are from 0% - 99%. Value 0% disables 519 free space checking logic. If user does not specify a value for this option, 520 the Engine uses a default value of 10%. 521 522 Whenever a new a thin pool device is created (during `docker pull` or during 523 container creation), the Engine checks if the minimum free space is 524 available. If the space is unavailable, then device creation fails and any 525 relevant `docker` operation fails. 526 527 To recover from this error, you must create more free space in the thin pool to 528 recover from the error. You can create free space by deleting some images 529 and containers from tge thin pool. You can also add 530 more storage to the thin pool. 531 532 To add more space to an LVM (logical volume management) thin pool, just add 533 more storage to the group container thin pool; this should automatically 534 resolve any errors. If your configuration uses loop devices, then stop the 535 Engine daemon, grow the size of loop files and restart the daemon to resolve 536 the issue. 537 538 Example use:: `dockerd --storage-opt dm.min_free_space=10%` 539 540 #### dm.xfs_nospace_max_retries 541 542 Specifies the maximum number of retries XFS should attempt to complete 543 IO when ENOSPC (no space) error is returned by underlying storage device. 544 545 By default XFS retries infinitely for IO to finish and this can result 546 in unkillable process. To change this behavior one can set 547 xfs_nospace_max_retries to say 0 and XFS will not retry IO after getting 548 ENOSPC and will shutdown filesystem. 549 550 Example use: 551 552 $ sudo dockerd --storage-opt dm.xfs_nospace_max_retries=0 553 554 555 ## ZFS options 556 557 #### zfs.fsname 558 559 Set zfs filesystem under which docker will create its own datasets. 560 By default docker will pick up the zfs filesystem where docker graph 561 (`/var/lib/docker`) is located. 562 563 Example use: `dockerd -s zfs --storage-opt zfs.fsname=zroot/docker` 564 565 ## Btrfs options 566 567 #### btrfs.min_space 568 569 Specifies the mininum size to use when creating the subvolume which is used 570 for containers. If user uses disk quota for btrfs when creating or running 571 a container with **--storage-opt size** option, docker should ensure the 572 **size** cannot be smaller than **btrfs.min_space**. 573 574 Example use: `docker daemon -s btrfs --storage-opt btrfs.min_space=10G` 575 576 # CLUSTER STORE OPTIONS 577 578 The daemon uses libkv to advertise 579 the node within the cluster. Some Key/Value backends support mutual 580 TLS, and the client TLS settings used by the daemon can be configured 581 using the **--cluster-store-opt** flag, specifying the paths to PEM encoded 582 files. 583 584 #### kv.cacertfile 585 586 Specifies the path to a local file with PEM encoded CA certificates to trust 587 588 #### kv.certfile 589 590 Specifies the path to a local file with a PEM encoded certificate. This 591 certificate is used as the client cert for communication with the 592 Key/Value store. 593 594 #### kv.keyfile 595 596 Specifies the path to a local file with a PEM encoded private key. This 597 private key is used as the client key for communication with the 598 Key/Value store. 599 600 # Access authorization 601 602 Docker's access authorization can be extended by authorization plugins that your 603 organization can purchase or build themselves. You can install one or more 604 authorization plugins when you start the Docker `daemon` using the 605 `--authorization-plugin=PLUGIN_ID` option. 606 607 ```bash 608 dockerd --authorization-plugin=plugin1 --authorization-plugin=plugin2,... 609 ``` 610 611 The `PLUGIN_ID` value is either the plugin's name or a path to its specification 612 file. The plugin's implementation determines whether you can specify a name or 613 path. Consult with your Docker administrator to get information about the 614 plugins available to you. 615 616 Once a plugin is installed, requests made to the `daemon` through the command 617 line or Docker's remote API are allowed or denied by the plugin. If you have 618 multiple plugins installed, at least one must allow the request for it to 619 complete. 620 621 For information about how to create an authorization plugin, see [authorization 622 plugin](https://docs.docker.com/engine/extend/authorization/) section in the 623 Docker extend section of this documentation. 624 625 626 # HISTORY 627 Sept 2015, Originally compiled by Shishir Mahajan <shishir.mahajan@redhat.com> 628 based on docker.com source material and internal work.