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.