Docker daemon uses kv-store as the host-discovery backend.
Discovery module tracks the liveness of a node through a simple
keepalive mechanism. The keepalive mechanism depends on every
node performing heartbeat by registering itself with the discovery
module (via KV-Store Put operation). And for every Put operation,
the discovery module in all other nodes will receive a Watch
notification. That keeps the node alive.
Any node that fails to register itself within the TTL timer is
considered dead and removed from the discovery database.
The default timer (heartbeat = 20 seconds & ttl = 60 seconds)
works fine for small clusters. But for large clusters, these
default timers are extremely aggressive and that causes high CPU
& most of the processing is spent managing the node discovery
and that impacts normal daemon operation.
Hence we need a way to make the discovery ttl and heartbeat
configurable. As the cluster size grows, the user can change
these timers to make sure the daemon scales.
Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: 2efdb8cbf519f55836b0703e47c907e24a20eff6
Component: engine
These changes were made as part of https://github.com/docker/docker/pull/17478
but inadvertently added to the v1.21 API version.
Also added a short description to the API changelog.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: a06d5273b3cb72f68fc32da26955842287314970
Component: engine
Plugin drivers were added to docker info in
https://github.com/docker/docker/pull/17300
but not added to the example output in the online
docs.
Also fixed mixed tabs/spaces in the API documentation.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 0a7e45e95c9e554c73581def80881534800a2b28
Component: engine
Our tooling used to convert Markdown to HTML doesn't
properly handle '|' symbols embeded in code blocks
inside a table.
Changed the table to a plain HTML table as a workaround.
Also fixed indentation levels of two code examples.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: bfdd94b0a8f0641f7bced9d3089a78e9550a7b04
Component: engine
2. modified page to remove note for apparmor and added it as a requirement for installing it on ubuntu
3. moved note to under prerequisites section
Signed-off-by: Zuhayr Elahi <elahi.zuhayr@gmail.com>
Upstream-commit: 0480da4d8cbd330732f005ea7ec1be93cc00e617
Component: engine
Currently, the Docker repos will trigger apt-get errors on a
multiarch-configured deb system because the repos don't contain all
architectures. For example, on a multiarch system supporting amd64 and
armhf, apt-get will look for armhf Docker packages, fail to find them,
and error out.
Fix this by qualifying the repo line with the currently active
architecture.
This fixes issue #18207.
Signed-off-by: Martin Kelly <martin@surround.io>
Upstream-commit: 3e5ac742417dc9461dd090c29ee9971ff0974adb
Component: engine
Leaving only one versioned main function that a backend must implement.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 38abba9e2c8f7ac27bd26bf98685b51585922317
Component: engine
The graph package is no longer used for tag, image, or layer storage.
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: ed4d236e04e1a5724de578654939e3a42f7466cc
Component: engine
Add distribution package for managing pulls and pushes. This is based on
the old code in the graph package, with major changes to work with the
new image/layer model.
Add v1 migration code.
Update registry, api/*, and daemon packages to use the reference
package's types where applicable.
Update daemon package to use image/layer/tag stores instead of the graph
package
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 4352da7803d182a6013a5238ce20a7c749db979a
Component: engine
The image store abstracts image handling. It keeps track of the
available images, and makes it possible to delete existing images or
register new ones. The image store holds references to the underlying
layers for each image.
The image/v1 package provides compatibility functions for interoperating
with older (non-content-addressable) image structures.
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 01ba0a935b9227583ec05a96e85273cc2276bb93
Component: engine
The tag store associates tags and digests with image IDs. This
functionality used to be part of graph package. This commit splits it
off into a self-contained package with a simple interface.
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 7de380c5c673411639d84e07c29830eb81cb1c8d
Component: engine
Layer store manages read-only and read-write layers on a union file system.
Read only layers are always referenced by content addresses.
Read-write layer identifiers are handled by the caller but upon registering
its difference, the committed read-only layer will be referenced by content
hash.
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 500e77bad0b19b3b1c8e6ac195485adcb70daef1
Component: engine
Can't safely use uint32 for locker since we need to decrement the count,
which requires loading the unit and doing some math, which is inherintly
racey.
Instead use Int32 which we can safely use with atomic and AddInt32 with
`-1`
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 985175fd8f8f662d5067bd62a89330e9a437375c
Component: engine
Add a flag to allow keeping bundles around (helps with CI)
Fix several problems in repo make targets
* quote DOCKER_EXPERIMENTAL variable
* pass-through arguments for gpg provided to dpkg-sig are now quoted
properly, so passphrases with shell-interpolated symbols can be used
* when determining deb suites, don't rely on 'origin' to be
github.com/docker/docker
Fix some issues with deb repository creation from scratch
* Don't add empty components to the repository configuration as they
will cause failure when generating.
Add old docker-engine-cs name to package conflicts
Signed-off-by: Mike Dougherty <mike.dougherty@docker.com>
Upstream-commit: a15b67b1affb2eac5365614e55703f43b6f73e9b
Component: engine
- update example based on '-ef' behavior
- new example specifying ps args 'aux'
- resolves#7205
Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
Upstream-commit: e28e4c7840455e97ac277a121a429f99a0c079df
Component: engine
Adjust the docker-default profile for when the docker daemon is running in
AppArmor confinement. To enable 'docker kill' we need to allow the container
to receive kill signals from the daemon.
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Upstream-commit: 5cd6b3eca236df06e66777b15932b1a7fbb2e954
Component: engine
A few additions to the policy when running with user namespaces enabled
and when running 'docker exec'.
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Upstream-commit: 6079d9d6a3b63fa8d9aa7a3981c6c37cc435bccb
Component: engine