mirror of https://github.com/docker/cli.git
Separate plugin sockets and specs.
Check if there is a plugin socket first under `/run/docker/plugins/NAME.sock`. If there is no socket for a plugin, check `/etc/docker/plugins/NAME.spec` and `/usr/lib/docker/plugins/NAME.spec` for spec files. Signed-off-by: David Calavera <david.calavera@gmail.com>
This commit is contained in:
parent
66c1b06bc4
commit
412d99db51
|
@ -12,8 +12,7 @@ This is an experimental feature. For information on installing and using experim
|
||||||
## What plugins are
|
## What plugins are
|
||||||
|
|
||||||
A plugin is a process running on the same docker host as the docker daemon,
|
A plugin is a process running on the same docker host as the docker daemon,
|
||||||
which registers itself by placing a file in `/usr/share/docker/plugins` (the
|
which registers itself by placing a file in one of the plugin directories described in [Plugin discovery](#plugin-discovery).
|
||||||
"plugin directory").
|
|
||||||
|
|
||||||
Plugins have human-readable names, which are short, lowercase strings. For
|
Plugins have human-readable names, which are short, lowercase strings. For
|
||||||
example, `flocker` or `weave`.
|
example, `flocker` or `weave`.
|
||||||
|
@ -32,10 +31,21 @@ There are three types of files which can be put in the plugin directory.
|
||||||
* `.spec` files are text files containing a URL, such as `unix:///other.sock`.
|
* `.spec` files are text files containing a URL, such as `unix:///other.sock`.
|
||||||
* `.json` files are text files containing a full json specification for the plugin.
|
* `.json` files are text files containing a full json specification for the plugin.
|
||||||
|
|
||||||
|
UNIX domain socket files must be located under `/run/docker/plugins`, whereas
|
||||||
|
spec files can be located either under `/etc/docker/plugins` or `/usr/lib/docker/plugins`.
|
||||||
|
|
||||||
The name of the file (excluding the extension) determines the plugin name.
|
The name of the file (excluding the extension) determines the plugin name.
|
||||||
|
|
||||||
For example, the `flocker` plugin might create a UNIX socket at
|
For example, the `flocker` plugin might create a UNIX socket at
|
||||||
`/usr/share/docker/plugins/flocker.sock`.
|
`/run/docker/plugins/flocker.sock`.
|
||||||
|
|
||||||
|
You can define each plugin into a separated subdirectory if you want to isolate definitions from each other.
|
||||||
|
For example, you can create the `flocker` socket under `/run/docker/plugins/flocker/flocker.sock` and only
|
||||||
|
mount `/run/docker/plugins/flocker` inside the `flocker` container.
|
||||||
|
|
||||||
|
Docker always searches for unix sockets in `/run/docker/plugins` first. It checks for spec or json files under
|
||||||
|
`/etc/docker/plugins` and `/usr/lib/docker/plugins` if the socket doesn't exist. The directory scan stops as
|
||||||
|
soon as it finds the first plugin definition with the given name.
|
||||||
|
|
||||||
### JSON specification
|
### JSON specification
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue