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 provides the base accessible fields for working with V0 plugin format in the registry.
description string
Description of the plugin
documentation string
Link to the documentation about the plugin
interface PluginInterface
Interface implemented by the plugins, struct consisting of the following fields:
types string array
Types 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 string
Socket 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 array
Entrypoint of the plugin, see ENTRYPOINT
workdir string
Working directory of the plugin, see WORKDIR
network PluginNetwork
Network of the plugin, struct consisting of the following fields:
type string
Network type.
Supported types:
bridgehostnonemounts PluginMount array
Mount of the plugin, struct consisting of the following fields. See MOUNTS.
name string
Name of the mount.
description string
Description of the mount.
source string
Source of the mount.
destination string
Destination of the mount.
type string
Mount type.
options string array
Options of the mount.
ipchost Boolean
Access to host ipc namespace.
pidhost Boolean
Access to host PID namespace.
propagatedMount string
Path 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 array
Environment variables of the plugin, struct consisting of the following fields:
name string
Name of the environment variable.
description string
Description of the environment variable.
value string
Value of the environment variable.
args PluginArgs
Arguments of the plugin, struct consisting of the following fields:
name string
Name of the arguments.
description string
Description of the arguments.
value string array
Values of the arguments.
linux PluginLinux
capabilities string array
Capabilities of the plugin (Linux only), see list here
allowAllDevices Boolean
If /dev is bind mounted from the host, and allowAllDevices is set to true, the plugin will have rwm access to all devices on the host.
devices PluginDevice array
Device of the plugin, (Linux only), struct consisting of the following fields. See DEVICES.
name string
Name of the device.
description string
Description of the device.
path string
Path of the device.
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": "" }