4.8 KiB
description | keywords | title |
---|---|---|
How to develop and use a plugin with the managed plugin system | API, Usage, plugins, documentation, developer | Plugin Config Version 1 of Plugin V2 |
This document outlines the format of the V0 plugin configuration.
Plugin configs describe the various constituents of a Docker engine plugin. Plugin configs can be serialized to JSON format with the following media types:
Config Type | Media Type |
---|---|
config | application/vnd.docker.plugin.v1+json |
Config Field Descriptions
Config provides the base accessible fields for working with V0 plugin format in the registry.
-
description
stringDescription of the plugin
-
documentation
stringLink to the documentation about the plugin
-
interface
PluginInterfaceInterface implemented by the plugins, struct consisting of the following fields:
-
types
string arrayTypes indicate what interface(s) the plugin currently implements.
Supported types:
-
docker.volumedriver/1.0
-
docker.networkdriver/1.0
-
docker.ipamdriver/1.0
-
docker.authz/1.0
-
docker.logdriver/1.0
-
docker.metricscollector/1.0
-
-
socket
stringSocket is the name of the socket the engine should use to communicate with the plugins. the socket will be created in
/run/docker/plugins
.
-
-
entrypoint
string arrayEntrypoint of the plugin, see
ENTRYPOINT
-
workdir
stringWorking directory of the plugin, see
WORKDIR
-
network
PluginNetworkNetwork of the plugin, struct consisting of the following fields:
-
type
stringNetwork type.
Supported types:
bridge
host
none
-
-
mounts
PluginMount arrayMount of the plugin, struct consisting of the following fields. See
MOUNTS
.-
name
stringName of the mount.
-
description
stringDescription of the mount.
-
source
stringSource of the mount.
-
destination
stringDestination of the mount.
-
type
stringMount type.
-
options
string arrayOptions of the mount.
-
-
ipchost
BooleanAccess to host ipc namespace.
-
pidhost
BooleanAccess to host PID namespace.
-
propagatedMount
stringPath to be mounted as rshared, so that mounts under that path are visible to Docker. This is useful for volume plugins. This path will be bind-mounted outside of the plugin rootfs so it's contents are preserved on upgrade.
-
env
PluginEnv arrayEnvironment variables of the plugin, struct consisting of the following fields:
-
name
stringName of the environment variable.
-
description
stringDescription of the environment variable.
-
value
stringValue of the environment variable.
-
-
args
PluginArgsArguments of the plugin, struct consisting of the following fields:
-
name
stringName of the arguments.
-
description
stringDescription of the arguments.
-
value
string arrayValues of the arguments.
-
-
linux
PluginLinux-
capabilities
string arrayCapabilities of the plugin (Linux only), see list
here
-
allowAllDevices
BooleanIf
/dev
is bind mounted from the host, and allowAllDevices is set to true, the plugin will haverwm
access to all devices on the host. -
devices
PluginDevice arrayDevice of the plugin, (Linux only), struct consisting of the following fields. See
DEVICES
.-
name
stringName of the device.
-
description
stringDescription of the device.
-
path
stringPath of the device.
-
-
Example Config
The following example shows the 'tiborvass/sample-volume-plugin' plugin config.
{
"Args": {
"Description": "",
"Name": "",
"Settable": null,
"Value": null
},
"Description": "A sample volume plugin for Docker",
"Documentation": "https://docs.docker.com/engine/extend/plugins/",
"Entrypoint": [
"/usr/bin/sample-volume-plugin",
"/data"
],
"Env": [
{
"Description": "",
"Name": "DEBUG",
"Settable": [
"value"
],
"Value": "0"
}
],
"Interface": {
"Socket": "plugin.sock",
"Types": [
"docker.volumedriver/1.0"
]
},
"Linux": {
"Capabilities": null,
"AllowAllDevices": false,
"Devices": null
},
"Mounts": null,
"Network": {
"Type": ""
},
"PropagatedMount": "/data",
"User": {},
"Workdir": ""
}