docker plugin upgrade¶
既存のプラグインを更新します。
【API 1.26+】このコマンドを使うには、クライアントとデーモン API の両方が、少なくとも 1.26 の必要があります。クライアントとデーモン API のバージョンを調べるには、 docker version
コマンドを使います。
補足説明¶
指定したリモートのプラグイン・イメージに、既存のプラグインを更新します。リモートを指定しない場合は、 Docker は現在のイメージを再取得し、更新したバージョンを使おうとします。プラグインに対する設定済みのリファレンスは、機能し続けます。実行中のプラグインは、更新する前に無効化する必要があります。
コマンドの使用例は、以下の 使用例のセクション をご覧ください。
オプション¶
名前, 省略形 |
デフォルト |
説明 |
---|---|---|
|
|
イメージ検証を省略 |
|
プラグインの実行に必要な全ての権限を与える |
|
|
指定したリモート・プラグインが既存のプラグイン・イメージに一致するかどうかを確認しない |
使用例¶
以下の例は 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
も同様の挙動です。
関連コマンド¶
コマンド |
説明 |
---|---|
rootfs と設定からプラグインを作成。プラグインのデータディレクトリには、 config.json と rootfs ディレクトリが必須 |
|
プラグインの無効化 |
|
プラグインの有効化 |
|
1つまたは複数プラグインの詳細情報を表示 |
|
プラグインをインストール |
|
プラグイン一覧表示 |
|
1つまたは複数プラグインを削除 |
|
プラグインの設定を変更 |
|
既存のプラグインを更新 |
参考
- docker plugin upgrade
https://docs.docker.com/engine/reference/commandline/plugin_upgrade/