3.5 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	plugin set
Change settings for a plugin
Description
Change settings for a plugin. The plugin must be disabled.
The settings currently supported are:
- env variables
- source of mounts
- path of devices
- args
What is settable ?
Look at the plugin manifest, it's easy to see what fields are settable,
by looking at the Settable field.
Here is an extract of a plugin manifest:
{
  "config": {
    "args": {
      "name": "myargs",
      "settable": ["value"],
      "value": ["foo", "bar"]
    },
    "env": [
      {
        "name": "DEBUG",
        "settable": ["value"],
        "value": "0"
      },
      {
        "name": "LOGGING",
        "value": "1"
      }
    ],
    "devices": [
      {
        "name": "mydevice",
        "path": "/dev/foo",
        "settable": ["path"]
      }
    ],
    "mounts": [
      {
        "destination": "/baz",
        "name": "mymount",
        "options": ["rbind"],
        "settable": ["source"],
        "source": "/foo",
        "type": "bind"
      }
    ]
  }
}
In this example, we can see that the value of the DEBUG environment variable is settable,
the source of the mymount mount is also settable. Same for the path of mydevice and value of myargs.
On the contrary, the LOGGING environment variable doesn't have any settable field, which implies that user cannot tweak it.
Examples
Change an environment variable
The following example change the env variable DEBUG on the
sample-volume-plugin plugin.
$ docker plugin inspect -f {{.Settings.Env}} tiborvass/sample-volume-plugin
[DEBUG=0]
$ docker plugin set tiborvass/sample-volume-plugin DEBUG=1
$ docker plugin inspect -f {{.Settings.Env}} tiborvass/sample-volume-plugin
[DEBUG=1]
Change the source of a mount
The following example change the source of the mymount mount on
the myplugin plugin.
$ docker plugin inspect -f '{{with $mount := index .Settings.Mounts 0}}{{$mount.Source}}{{end}}' myplugin
/foo
$ docker plugins set myplugin mymount.source=/bar
$ docker plugin inspect -f '{{with $mount := index .Settings.Mounts 0}}{{$mount.Source}}{{end}}' myplugin
/bar
Note
Since only
sourceis settable inmymount,docker plugins set mymount=/bar mypluginwould work too.
Change a device path
The following example change the path of the mydevice device on
the myplugin plugin.
$ docker plugin inspect -f '{{with $device := index .Settings.Devices 0}}{{$device.Path}}{{end}}' myplugin
/dev/foo
$ docker plugins set myplugin mydevice.path=/dev/bar
$ docker plugin inspect -f '{{with $device := index .Settings.Devices 0}}{{$device.Path}}{{end}}' myplugin
/dev/bar
Note
Since only
pathis settable inmydevice,docker plugins set mydevice=/dev/bar mypluginwould work too.
Change the source of the arguments
The following example change the value of the args on the myplugin plugin.
$ docker plugin inspect -f '{{.Settings.Args}}' myplugin
["foo", "bar"]
$ docker plugins set myplugin myargs="foo bar baz"
$ docker plugin inspect -f '{{.Settings.Args}}' myplugin
["foo", "bar", "baz"]