docker plugin upgrade

既存のプラグインを更新します。

【API 1.26+】このコマンドを使うには、クライアントとデーモン API の両方が、少なくとも 1.26 の必要があります。クライアントとデーモン API のバージョンを調べるには、 docker version コマンドを使います。

使い方

$ docker plugin upgrade [OPTIONS] PLUGIN [REMOTE]

補足説明

指定したリモートのプラグイン・イメージに、既存のプラグインを更新します。リモートを指定しない場合は、 Docker は現在のイメージを再取得し、更新したバージョンを使おうとします。プラグインに対する設定済みのリファレンスは、機能し続けます。実行中のプラグインは、更新する前に無効化する必要があります。

コマンドの使用例は、以下の 使用例のセクション をご覧ください。

オプション

名前, 省略形 デフォルト 説明
--disable-content-trust true イメージ検証を省略
--grant-all-permissions   プラグインの実行に必要な全ての権限を与える
--skip-remote-check   指定したリモート・プラグインが既存のプラグイン・イメージに一致するかどうかを確認しない

使用例

以下の例は vieus/sshfs プラグインをインストールし、これでボリュームを作成・使用し、その後、プラグインを更新します。

$ 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

環境変数を変更

以下の例は sample-volume-plugin プラグイン上の環境変数 DEBUG を変更します。

$ 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]

プラグインのマウント元を変更

以下の例は myplugin プラグインの mymount マウント元を変更します。

$ 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

注釈

唯一の source のみ mymount に設定できるように、 docker plugins set mymount=/bar myplugin も同様の挙動です。

デバイスのパスを変更

以下の例は myplugin プラグイン上の mydevice デバイスのパスを変更します。

$ 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

注釈

唯一の path のみ mydevice に設定できるように、 docker plugins set mydevice=/dev/bar myplugi も同様の挙動です。

引数のソースを変更

以下の例は myplugin プラグイン上の、引数の値を変更します。

$ 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"]

親コマンド

コマンド 説明
docker plugin プラグインを管理

関連コマンド

コマンド 説明
docker plugin create rootfs と設定からプラグインを作成。プラグインのデータディレクトリには、 config.json と rootfs ディレクトリが必須
docker plugin disable プラグインの無効化
docker plugin enable プラグインの有効化
docker plugin inspect 1つまたは複数プラグインの詳細情報を表示
docker plugin install プラグインをインストール
docker plugin ls プラグイン一覧表示
docker plugin rm 1つまたは複数プラグインを削除
docker plugin set プラグインの設定を変更
docker plugin upgrade 既存のプラグインを更新