Signed-off-by: Gaetan de Villele <gdevillele@gmail.com>
5.2 KiB
aliases | title | description | keywords | advisory | |
---|---|---|---|---|---|
|
Plugin manifest | How develop and use a plugin with the managed plugin system | API, Usage, plugins, documentation, developer | experimental |
Plugin Manifest Version 0 of Plugin V2
This document outlines the format of the V0 plugin manifest. The plugin manifest described herein was introduced in the Docker daemon (experimental version) in the v1.12.0 release.
Plugin manifests describe the various constituents of a docker plugin. Plugin manifests can be serialized to JSON format with the following media types:
Manifest Type | Media Type |
---|---|
manifest | "application/vnd.docker.plugin.v0+json" |
Manifest Field Descriptions
Manifest provides the base accessible fields for working with V0 plugin format in the registry.
-
manifestVersion
stringversion of the plugin manifest (This version uses V0)
-
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.
currently supported:
- docker.volumedriver/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
stringworkdir of the plugin, see
WORKDIR
-
network
PluginNetworknetwork of the plugin, struct consisting of the following fields
-
type
stringnetwork type.
currently supported:
- bridge - host - none
-
-
capabilities
arraycapabilities of the plugin (Linux only), see list
here
-
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.
-
-
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.
-
-
env
PluginEnv arrayenv of the plugin, struct consisting of the following fields
-
name
stringname of the env.
-
description
stringdescription of the env.
-
value
stringvalue of the env.
-
-
args
PluginArgsargs of the plugin, struct consisting of the following fields
-
name
stringname of the env.
-
description
stringdescription of the env.
-
value
string arrayvalues of the args.
-
Example Manifest
Example showing the 'tiborvass/no-remove' plugin manifest.
{
"manifestVersion": "v0",
"description": "A test plugin for Docker",
"documentation": "https://docs.docker.com/engine/extend/plugins/",
"entrypoint": ["plugin-no-remove", "/data"],
"interface" : {
"types": ["docker.volumedriver/1.0"],
"socket": "plugins.sock"
},
"network": {
"type": "host"
},
"mounts": [
{
"source": "/data",
"destination": "/data",
"type": "bind",
"options": ["shared", "rbind"]
},
{
"destination": "/foobar",
"type": "tmpfs"
}
],
"args": {
"name": "args",
"description": "command line arguments",
"value": []
},
"env": [
{
"name": "DEBUG",
"description": "If set, prints debug messages",
"value": "1"
}
],
"devices": [
{
"name": "device",
"description": "a host device to mount",
"path": "/dev/cpu_dma_latency"
}
]
}