Change settings for a plugin
Change settings for a plugin. The plugin must be disabled.
The settings currently supported are:
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.
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]
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.
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.
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"]