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.
- descriptionstring- Description of the plugin 
- documentationstring- Link to the documentation about the plugin 
- interfacePluginInterface- Interface implemented by the plugins, struct consisting of the following fields: - typesstring 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
 
- socketstring- 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.
 
- entrypointstring array- Entrypoint of the plugin, see - ENTRYPOINT
- workdirstring- Working directory of the plugin, see - WORKDIR
- networkPluginNetwork- Network of the plugin, struct consisting of the following fields: - typestring- Network type. - Supported types: - bridge
- host
- none
 
 
- mountsPluginMount array- Mount of the plugin, struct consisting of the following fields. See - MOUNTS.- namestring- Name of the mount. 
- descriptionstring- Description of the mount. 
- sourcestring- Source of the mount. 
- destinationstring- Destination of the mount. 
- typestring- Mount type. 
- optionsstring array- Options of the mount. 
 
- ipchostBoolean- Access to host ipc namespace. 
- pidhostBoolean- Access to host PID namespace. 
- propagatedMountstring- 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. 
- envPluginEnv array- Environment variables of the plugin, struct consisting of the following fields: - namestring- Name of the environment variable. 
- descriptionstring- Description of the environment variable. 
- valuestring- Value of the environment variable. 
 
- argsPluginArgs- Arguments of the plugin, struct consisting of the following fields: - namestring- Name of the arguments. 
- descriptionstring- Description of the arguments. 
- valuestring array- Values of the arguments. 
 
- linuxPluginLinux- capabilitiesstring array- Capabilities of the plugin (Linux only), see list - here
- allowAllDevicesBoolean- If - /devis bind mounted from the host, and allowAllDevices is set to true, the plugin will have- rwmaccess to all devices on the host.
- devicesPluginDevice array- Device of the plugin, (Linux only), struct consisting of the following fields. See - DEVICES.- namestring- Name of the device. 
- descriptionstring- Description of the device. 
- pathstring- Path 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": ""
}