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