|
@@ -5,6 +5,15 @@ description: "The daemon command description and usage"
|
|
keywords: ["container, daemon, runtime"]
|
|
keywords: ["container, daemon, runtime"]
|
|
---
|
|
---
|
|
|
|
|
|
|
|
+<!-- This file is maintained within the docker/docker Github
|
|
|
|
+ repository at https://github.com/docker/docker/. Make all
|
|
|
|
+ pull requests against that repo. If you see this file in
|
|
|
|
+ another repository, consider it read-only there, as it will
|
|
|
|
+ periodically be overwritten by the definitive file. Pull
|
|
|
|
+ requests which include edits to this file in other repositories
|
|
|
|
+ will be rejected.
|
|
|
|
+-->
|
|
|
|
+
|
|
# daemon
|
|
# daemon
|
|
|
|
|
|
```markdown
|
|
```markdown
|
|
@@ -279,7 +288,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
|
|
|
|
#### Devicemapper options
|
|
#### Devicemapper options
|
|
|
|
|
|
-* `dm.thinpooldev`
|
|
|
|
|
|
+* `dm.thinpooldev`
|
|
|
|
|
|
Specifies a custom block storage device to use for the thin pool.
|
|
Specifies a custom block storage device to use for the thin pool.
|
|
|
|
|
|
@@ -306,7 +315,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
$ sudo dockerd --storage-opt dm.thinpooldev=/dev/mapper/thin-pool
|
|
$ sudo dockerd --storage-opt dm.thinpooldev=/dev/mapper/thin-pool
|
|
```
|
|
```
|
|
|
|
|
|
-* `dm.basesize`
|
|
|
|
|
|
+* `dm.basesize`
|
|
|
|
|
|
Specifies the size to use when creating the base device, which limits the
|
|
Specifies the size to use when creating the base device, which limits the
|
|
size of images and containers. The default value is 10G. Note, thin devices
|
|
size of images and containers. The default value is 10G. Note, thin devices
|
|
@@ -324,7 +333,6 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
$ sudo dockerd --storage-opt dm.basesize=50G
|
|
$ sudo dockerd --storage-opt dm.basesize=50G
|
|
```
|
|
```
|
|
|
|
|
|
-
|
|
|
|
This will increase the base device size to 50G. The Docker daemon will throw an
|
|
This will increase the base device size to 50G. The Docker daemon will throw an
|
|
error if existing base device size is larger than 50G. A user can use
|
|
error if existing base device size is larger than 50G. A user can use
|
|
this option to expand the base device size however shrinking is not permitted.
|
|
this option to expand the base device size however shrinking is not permitted.
|
|
@@ -345,7 +353,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
$ sudo dockerd --storage-opt dm.basesize=20G
|
|
$ sudo dockerd --storage-opt dm.basesize=20G
|
|
```
|
|
```
|
|
|
|
|
|
-* `dm.loopdatasize`
|
|
|
|
|
|
+* `dm.loopdatasize`
|
|
|
|
|
|
> **Note**:
|
|
> **Note**:
|
|
> This option configures devicemapper loopback, which should not
|
|
> This option configures devicemapper loopback, which should not
|
|
@@ -362,7 +370,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
$ sudo dockerd --storage-opt dm.loopdatasize=200G
|
|
$ sudo dockerd --storage-opt dm.loopdatasize=200G
|
|
```
|
|
```
|
|
|
|
|
|
-* `dm.loopmetadatasize`
|
|
|
|
|
|
+* `dm.loopmetadatasize`
|
|
|
|
|
|
> **Note**:
|
|
> **Note**:
|
|
> This option configures devicemapper loopback, which should not
|
|
> This option configures devicemapper loopback, which should not
|
|
@@ -379,7 +387,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
$ sudo dockerd --storage-opt dm.loopmetadatasize=4G
|
|
$ sudo dockerd --storage-opt dm.loopmetadatasize=4G
|
|
```
|
|
```
|
|
|
|
|
|
-* `dm.fs`
|
|
|
|
|
|
+* `dm.fs`
|
|
|
|
|
|
Specifies the filesystem type to use for the base device. The supported
|
|
Specifies the filesystem type to use for the base device. The supported
|
|
options are "ext4" and "xfs". The default is "xfs"
|
|
options are "ext4" and "xfs". The default is "xfs"
|
|
@@ -390,7 +398,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
$ sudo dockerd --storage-opt dm.fs=ext4
|
|
$ sudo dockerd --storage-opt dm.fs=ext4
|
|
```
|
|
```
|
|
|
|
|
|
-* `dm.mkfsarg`
|
|
|
|
|
|
+* `dm.mkfsarg`
|
|
|
|
|
|
Specifies extra mkfs arguments to be used when creating the base device.
|
|
Specifies extra mkfs arguments to be used when creating the base device.
|
|
|
|
|
|
@@ -400,7 +408,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
$ sudo dockerd --storage-opt "dm.mkfsarg=-O ^has_journal"
|
|
$ sudo dockerd --storage-opt "dm.mkfsarg=-O ^has_journal"
|
|
```
|
|
```
|
|
|
|
|
|
-* `dm.mountopt`
|
|
|
|
|
|
+* `dm.mountopt`
|
|
|
|
|
|
Specifies extra mount options used when mounting the thin devices.
|
|
Specifies extra mount options used when mounting the thin devices.
|
|
|
|
|
|
@@ -410,7 +418,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
$ sudo dockerd --storage-opt dm.mountopt=nodiscard
|
|
$ sudo dockerd --storage-opt dm.mountopt=nodiscard
|
|
```
|
|
```
|
|
|
|
|
|
-* `dm.datadev`
|
|
|
|
|
|
+* `dm.datadev`
|
|
|
|
|
|
(Deprecated, use `dm.thinpooldev`)
|
|
(Deprecated, use `dm.thinpooldev`)
|
|
|
|
|
|
@@ -428,7 +436,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
--storage-opt dm.metadatadev=/dev/sdc1
|
|
--storage-opt dm.metadatadev=/dev/sdc1
|
|
```
|
|
```
|
|
|
|
|
|
-* `dm.metadatadev`
|
|
|
|
|
|
+* `dm.metadatadev`
|
|
|
|
|
|
(Deprecated, use `dm.thinpooldev`)
|
|
(Deprecated, use `dm.thinpooldev`)
|
|
|
|
|
|
@@ -452,7 +460,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
--storage-opt dm.metadatadev=/dev/sdc1
|
|
--storage-opt dm.metadatadev=/dev/sdc1
|
|
```
|
|
```
|
|
|
|
|
|
-* `dm.blocksize`
|
|
|
|
|
|
+* `dm.blocksize`
|
|
|
|
|
|
Specifies a custom blocksize to use for the thin pool. The default
|
|
Specifies a custom blocksize to use for the thin pool. The default
|
|
blocksize is 64K.
|
|
blocksize is 64K.
|
|
@@ -463,7 +471,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
$ sudo dockerd --storage-opt dm.blocksize=512K
|
|
$ sudo dockerd --storage-opt dm.blocksize=512K
|
|
```
|
|
```
|
|
|
|
|
|
-* `dm.blkdiscard`
|
|
|
|
|
|
+* `dm.blkdiscard`
|
|
|
|
|
|
Enables or disables the use of blkdiscard when removing devicemapper
|
|
Enables or disables the use of blkdiscard when removing devicemapper
|
|
devices. This is enabled by default (only) if using loopback devices and is
|
|
devices. This is enabled by default (only) if using loopback devices and is
|
|
@@ -479,7 +487,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
$ sudo dockerd --storage-opt dm.blkdiscard=false
|
|
$ sudo dockerd --storage-opt dm.blkdiscard=false
|
|
```
|
|
```
|
|
|
|
|
|
-* `dm.override_udev_sync_check`
|
|
|
|
|
|
+* `dm.override_udev_sync_check`
|
|
|
|
|
|
Overrides the `udev` synchronization checks between `devicemapper` and `udev`.
|
|
Overrides the `udev` synchronization checks between `devicemapper` and `udev`.
|
|
`udev` is the device manager for the Linux kernel.
|
|
`udev` is the device manager for the Linux kernel.
|
|
@@ -519,7 +527,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
> Otherwise, set this flag for migrating existing Docker daemons to
|
|
> Otherwise, set this flag for migrating existing Docker daemons to
|
|
> a daemon with a supported environment.
|
|
> a daemon with a supported environment.
|
|
|
|
|
|
-* `dm.use_deferred_removal`
|
|
|
|
|
|
+* `dm.use_deferred_removal`
|
|
|
|
|
|
Enables use of deferred device removal if `libdm` and the kernel driver
|
|
Enables use of deferred device removal if `libdm` and the kernel driver
|
|
support the mechanism.
|
|
support the mechanism.
|
|
@@ -541,7 +549,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
$ sudo dockerd --storage-opt dm.use_deferred_removal=true
|
|
$ sudo dockerd --storage-opt dm.use_deferred_removal=true
|
|
```
|
|
```
|
|
|
|
|
|
-* `dm.use_deferred_deletion`
|
|
|
|
|
|
+* `dm.use_deferred_deletion`
|
|
|
|
|
|
Enables use of deferred device deletion for thin pool devices. By default,
|
|
Enables use of deferred device deletion for thin pool devices. By default,
|
|
thin pool device deletion is synchronous. Before a container is deleted,
|
|
thin pool device deletion is synchronous. Before a container is deleted,
|
|
@@ -567,7 +575,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
when unintentional leaking of mount point happens across multiple mount
|
|
when unintentional leaking of mount point happens across multiple mount
|
|
namespaces.
|
|
namespaces.
|
|
|
|
|
|
-* `dm.min_free_space`
|
|
|
|
|
|
+* `dm.min_free_space`
|
|
|
|
|
|
Specifies the min free space percent in a thin pool require for new device
|
|
Specifies the min free space percent in a thin pool require for new device
|
|
creation to succeed. This check applies to both free data space as well
|
|
creation to succeed. This check applies to both free data space as well
|
|
@@ -615,7 +623,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
|
|
|
|
#### ZFS options
|
|
#### ZFS options
|
|
|
|
|
|
-* `zfs.fsname`
|
|
|
|
|
|
+* `zfs.fsname`
|
|
|
|
|
|
Set zfs filesystem under which docker will create its own datasets.
|
|
Set zfs filesystem under which docker will create its own datasets.
|
|
By default docker will pick up the zfs filesystem where docker graph
|
|
By default docker will pick up the zfs filesystem where docker graph
|
|
@@ -629,9 +637,9 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
|
|
|
|
#### Btrfs options
|
|
#### Btrfs options
|
|
|
|
|
|
-* `btrfs.min_space`
|
|
|
|
|
|
+* `btrfs.min_space`
|
|
|
|
|
|
- Specifies the mininum size to use when creating the subvolume which is used
|
|
|
|
|
|
+ Specifies the minimum size to use when creating the subvolume which is used
|
|
for containers. If user uses disk quota for btrfs when creating or running
|
|
for containers. If user uses disk quota for btrfs when creating or running
|
|
a container with **--storage-opt size** option, docker should ensure the
|
|
a container with **--storage-opt size** option, docker should ensure the
|
|
**size** cannot be smaller than **btrfs.min_space**.
|
|
**size** cannot be smaller than **btrfs.min_space**.
|
|
@@ -644,7 +652,7 @@ options for `zfs` start with `zfs` and options for `btrfs` start with `btrfs`.
|
|
|
|
|
|
#### Overlay2 options
|
|
#### Overlay2 options
|
|
|
|
|
|
-* `overlay2.override_kernel_check`
|
|
|
|
|
|
+* `overlay2.override_kernel_check`
|
|
|
|
|
|
Overrides the Linux kernel version check allowing overlay2. Support for
|
|
Overrides the Linux kernel version check allowing overlay2. Support for
|
|
specifying multiple lower directories needed by overlay2 was added to the
|
|
specifying multiple lower directories needed by overlay2 was added to the
|
|
@@ -672,19 +680,20 @@ Runtimes can be registered with the daemon either via the
|
|
configuration file or using the `--add-runtime` command line argument.
|
|
configuration file or using the `--add-runtime` command line argument.
|
|
|
|
|
|
The following is an example adding 2 runtimes via the configuration:
|
|
The following is an example adding 2 runtimes via the configuration:
|
|
|
|
+
|
|
```json
|
|
```json
|
|
- "default-runtime": "runc",
|
|
|
|
- "runtimes": {
|
|
|
|
- "runc": {
|
|
|
|
- "path": "runc"
|
|
|
|
- },
|
|
|
|
- "custom": {
|
|
|
|
- "path": "/usr/local/bin/my-runc-replacement",
|
|
|
|
- "runtimeArgs": [
|
|
|
|
- "--debug"
|
|
|
|
- ]
|
|
|
|
- }
|
|
|
|
|
|
+"default-runtime": "runc",
|
|
|
|
+"runtimes": {
|
|
|
|
+ "runc": {
|
|
|
|
+ "path": "runc"
|
|
|
|
+ },
|
|
|
|
+ "custom": {
|
|
|
|
+ "path": "/usr/local/bin/my-runc-replacement",
|
|
|
|
+ "runtimeArgs": [
|
|
|
|
+ "--debug"
|
|
|
|
+ ]
|
|
}
|
|
}
|
|
|
|
+}
|
|
```
|
|
```
|
|
|
|
|
|
This is the same example via the command line:
|
|
This is the same example via the command line:
|
|
@@ -844,35 +853,35 @@ $ sudo dockerd \
|
|
|
|
|
|
The currently supported cluster store options are:
|
|
The currently supported cluster store options are:
|
|
|
|
|
|
-* `discovery.heartbeat`
|
|
|
|
|
|
+* `discovery.heartbeat`
|
|
|
|
|
|
Specifies the heartbeat timer in seconds which is used by the daemon as a
|
|
Specifies the heartbeat timer in seconds which is used by the daemon as a
|
|
keepalive mechanism to make sure discovery module treats the node as alive
|
|
keepalive mechanism to make sure discovery module treats the node as alive
|
|
in the cluster. If not configured, the default value is 20 seconds.
|
|
in the cluster. If not configured, the default value is 20 seconds.
|
|
|
|
|
|
-* `discovery.ttl`
|
|
|
|
|
|
+* `discovery.ttl`
|
|
|
|
|
|
Specifies the ttl (time-to-live) in seconds which is used by the discovery
|
|
Specifies the ttl (time-to-live) in seconds which is used by the discovery
|
|
module to timeout a node if a valid heartbeat is not received within the
|
|
module to timeout a node if a valid heartbeat is not received within the
|
|
configured ttl value. If not configured, the default value is 60 seconds.
|
|
configured ttl value. If not configured, the default value is 60 seconds.
|
|
|
|
|
|
-* `kv.cacertfile`
|
|
|
|
|
|
+* `kv.cacertfile`
|
|
|
|
|
|
Specifies the path to a local file with PEM encoded CA certificates to trust
|
|
Specifies the path to a local file with PEM encoded CA certificates to trust
|
|
|
|
|
|
-* `kv.certfile`
|
|
|
|
|
|
+* `kv.certfile`
|
|
|
|
|
|
Specifies the path to a local file with a PEM encoded certificate. This
|
|
Specifies the path to a local file with a PEM encoded certificate. This
|
|
certificate is used as the client cert for communication with the
|
|
certificate is used as the client cert for communication with the
|
|
Key/Value store.
|
|
Key/Value store.
|
|
|
|
|
|
-* `kv.keyfile`
|
|
|
|
|
|
+* `kv.keyfile`
|
|
|
|
|
|
Specifies the path to a local file with a PEM encoded private key. This
|
|
Specifies the path to a local file with a PEM encoded private key. This
|
|
private key is used as the client key for communication with the
|
|
private key is used as the client key for communication with the
|
|
Key/Value store.
|
|
Key/Value store.
|
|
|
|
|
|
-* `kv.path`
|
|
|
|
|
|
+* `kv.path`
|
|
|
|
|
|
Specifies the path in the Key/Value store. If not configured, the default value is 'docker/nodes'.
|
|
Specifies the path in the Key/Value store. If not configured, the default value is 'docker/nodes'.
|
|
|
|
|