moby/docs/extend/config.md
Riyaz Faizullabhoy 94c4cfc209 Edits to plugin docs after building authz plugin
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-11-16 17:10:24 -08:00

5.1 KiB

aliases title description keywords
/engine/extend/
Plugin config How develop and use a plugin with the managed plugin system API, Usage, plugins, documentation, developer

Plugin Config Version 0 of Plugin V2

This document outlines the format of the V0 plugin configuration. The plugin config described herein was introduced in the Docker daemon in the v1.12.0 release.

Plugin configs describe the various constituents of a docker plugin. Plugin configs can be serialized to JSON format with the following media types:

Config Type Media Type
config "application/vnd.docker.plugin.v0+json"

Config Field Descriptions

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.

      currently supported:

      - docker.volumedriver/1.0

      - docker.authz/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

    workdir of the plugin, see WORKDIR

  • network PluginNetwork

    network of the plugin, struct consisting of the following fields

    • type string

      network type.

      currently supported:

      - bridge - host - none

  • capabilities array

    capabilities of the plugin (Linux only), see list here

  • mounts 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.

  • 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.

  • env PluginEnv array

    env of the plugin, struct consisting of the following fields

    • name string

      name of the env.

    • description string

      description of the env.

    • value string

      value of the env.

  • args PluginArgs

    args of the plugin, struct consisting of the following fields

    • name string

      name of the env.

    • description string

      description of the env.

    • value string array

      values of the args.

Example Config

Example showing the 'tiborvass/no-remove' plugin config.

{
       	"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"
       		}
       	]
}