command: docker plugin set
short: Change settings for a plugin
long: |-
    Change settings for a plugin. The plugin must be disabled.

    The settings currently supported are:
     * env variables
     * source of mounts
     * path of devices
     * args
usage: docker plugin set PLUGIN KEY=VALUE [KEY=VALUE...]
pname: docker plugin
plink: docker_plugin.yaml
inherited_options:
    - option: help
      value_type: bool
      default_value: "false"
      description: Print usage
      deprecated: false
      hidden: true
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
examples: |-
    ### Change an environment variable

    The following example change the env variable `DEBUG` on the
    `sample-volume-plugin` plugin.

    ```console
    $ 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.

    ```console
    $ 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 `source` is settable in `mymount`,
    > `docker plugins set mymount=/bar myplugin` would work too.

    ### Change a device path

    The following example change the path of the `mydevice` device on
    the `myplugin` plugin.

    ```console
    $ 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 `path` is settable in `mydevice`,
    > `docker plugins set mydevice=/dev/bar myplugin` would work too.

    ### Change the source of the arguments

    The following example change the value of the args on the `myplugin` plugin.

    ```console
    $ 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"]
    ```
deprecated: false
hidden: false
min_api_version: "1.25"
experimental: false
experimentalcli: false
kubernetes: false
swarm: false

