command: docker plugin upgrade
short: Upgrade an existing plugin
long: |-
    Upgrades an existing plugin to the specified remote plugin image. If no remote
    is specified, Docker will re-pull the current image and use the updated version.
    All existing references to the plugin will continue to work.
    The plugin must be disabled before running the upgrade.
usage: docker plugin upgrade [OPTIONS] PLUGIN [REMOTE]
pname: docker plugin
plink: docker_plugin.yaml
options:
    - option: disable-content-trust
      value_type: bool
      default_value: "true"
      description: Skip image verification (deprecated)
      deprecated: true
      hidden: true
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
    - option: grant-all-permissions
      value_type: bool
      default_value: "false"
      description: Grant all permissions necessary to run the plugin
      deprecated: false
      hidden: false
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
    - option: skip-remote-check
      value_type: bool
      default_value: "false"
      description: |
        Do not check if specified remote plugin matches existing plugin image
      deprecated: false
      hidden: false
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
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: |-
    The following example installs `vieus/sshfs` plugin, uses it to create and use
    a volume, then upgrades the plugin.

    ```console
    $ docker plugin install vieux/sshfs DEBUG=1

    Plugin "vieux/sshfs:next" is requesting the following privileges:
     - network: [host]
     - device: [/dev/fuse]
     - capabilities: [CAP_SYS_ADMIN]
    Do you grant the above permissions? [y/N] y
    vieux/sshfs:next

    $ docker volume create -d vieux/sshfs:next -o sshcmd=root@1.2.3.4:/tmp/shared -o password=XXX sshvolume

    sshvolume

    $ docker run -it -v sshvolume:/data alpine sh -c "touch /data/hello"

    $ docker plugin disable -f vieux/sshfs:next

    viex/sshfs:next

    # Here docker volume ls doesn't show 'sshfsvolume', since the plugin is disabled
    $ docker volume ls

    DRIVER              VOLUME NAME

    $ docker plugin upgrade vieux/sshfs:next vieux/sshfs:next

    Plugin "vieux/sshfs:next" is requesting the following privileges:
     - network: [host]
     - device: [/dev/fuse]
     - capabilities: [CAP_SYS_ADMIN]
    Do you grant the above permissions? [y/N] y
    Upgrade plugin vieux/sshfs:next to vieux/sshfs:next

    $ docker plugin enable vieux/sshfs:next

    viex/sshfs:next

    $ docker volume ls

    DRIVER              VOLUME NAME
    viuex/sshfs:next    sshvolume

    $ docker run -it -v sshvolume:/data alpine sh -c "ls /data"

    hello
    ```
deprecated: false
hidden: false
min_api_version: "1.26"
experimental: false
experimentalcli: false
kubernetes: false
swarm: false

