はじめに
この実験では、Docker プラグインの管理方法、特にアップグレードプロセスに焦点を当てて学びます。まず、Docker プラグインをインストールして使用することで、その基本的な機能と Docker との統合方法を理解します。
初期設定の後、プラグインをアップグレードするための準備段階として、プラグインを無効化する必要な手順を学びます。最後に、docker plugin upgrade コマンドを使用してアップグレードを実行し、アップグレードされたプラグインを再度有効化して、正常に機能していることを確認します。この実験では、Docker プラグインのライフサイクル管理に関する実践的な経験を得ることができます。
Docker プラグインのインストールと使用
このステップでは、Docker プラグインのインストールと使用方法を学びます。Docker プラグインは、Docker の機能を拡張します。ボリューム管理やネットワークドライバなどの機能を提供することができます。ここでは、Docker ボリュームを Amazon S3 に保存できる rexray/s3fs というシンプルなボリュームプラグインをインストールします。完全な S3 バックエンドをセットアップすることはしませんが、プラグインのインストールによりそのプロセスを理解できます。
まず、プラグインをインストールしましょう。docker plugin install コマンドを使用して Docker プラグインをインストールできます。
sudo docker plugin install rexray/s3fs --grant-all-permissions
このコマンドは、rexray/s3fs プラグインをインストールし、必要なすべての権限を付与します。--grant-all-permissions フラグは、この実験環境での簡便性のために使用されています。本番環境では、必要な権限のみを慎重に確認して付与する必要があります。
インストールと権限の確認を求めるメッセージが表示されます。y と入力して Enter キーを押します。
Plugin "rexray/s3fs" is requesting the following permissions:
- network: host
- mount: /dev/fuse
- allow-sys-admin
- allow-cap-sys-admin
- allow-device /dev/fuse
- allow-cfg-unix-groups
- allow-runtime-privilege
- allow-force-remove
Do you grant the plugin these permissions? [y/N] y
確認後、Docker はプラグインをダウンロードしてインストールします。これにはネットワーク接続に応じて少し時間がかかる場合があります。
インストールが完了したら、docker plugin ls コマンドを使用して、プラグインがインストールされて有効化されていることを確認できます。
sudo docker plugin ls
rexray/s3fs が ENABLED ステータスが true として表示されるはずです。
ID NAME DESCRIPTION ENABLED
xxxxxxxxxxxx rexray/s3fs REX-Ray S3FS Docker Volume Plugin true
プラグインがインストールされて有効化されたので、これを使用してボリュームを作成できます。S3 の認証情報を設定しないと S3 の機能を完全に利用することはできませんが、プラグインドライバを使用してボリュームを作成することはできます。
sudo docker volume create --driver rexray/s3fs my-s3-volume
このコマンドは、rexray/s3fs ドライバを使用して my-s3-volume という名前のボリュームを作成しようとします。S3 を設定していないため、このコマンドは S3 接続に関する警告またはエラーを表示する場合がありますが、ボリュームオブジェクト自体は Docker によって作成されます。
新しく作成されたボリュームを確認するために、ボリュームを一覧表示できます。
sudo docker volume ls
DRIVER が rexray/s3fs として my-s3-volume が表示されるはずです。
DRIVER VOLUME NAME
rexray/s3fs my-s3-volume
最後に、ボリュームを調査して、その詳細を確認できます。
sudo docker volume inspect my-s3-volume
このコマンドは、my-s3-volume に関する情報を含む JSON オブジェクトを出力します。これにはドライバの情報も含まれます。
アップグレード前にプラグインを無効化する
このステップでは、Docker プラグインを無効化する方法を学びます。Docker プラグインをアップグレードする前に、まずプラグインを無効化することが推奨されます。これにより、アップグレード中にプラグインがコンテナやサービスによってアクティブに使用されないようになり、潜在的な問題を防ぐことができます。
docker plugin disable コマンドを使用して Docker プラグインを無効化できます。
sudo docker plugin disable rexray/s3fs
このコマンドは、rexray/s3fs プラグインを無効化します。実行中のコンテナが現在このプラグインを使用している場合、Docker はプラグインの無効化を阻止し、エラーメッセージを表示します。今回の場合、実行中のコンテナがこのプラグインをアクティブに使用していないため、正常に無効化されるはずです。
プラグインを無効化した後、docker plugin ls コマンドを使用してその状態を確認できます。
sudo docker plugin ls
これで、rexray/s3fs の ENABLED ステータスが false として表示されるはずです。
ID NAME DESCRIPTION ENABLED
xxxxxxxxxxxx rexray/s3fs REX-Ray S3FS Docker Volume Plugin false
プラグインを無効化すると、プラグインは非アクティブになりますが、システムにはまだインストールされたままです。この状態は、プラグインのアップグレードまたは削除を行う前に必要です。
Docker プラグインのアップグレード
このステップでは、Docker プラグインのアップグレード方法を学びます。プラグインのアップグレードは、プラグインの新しいバージョンをインストールすることを意味します。前のステップで既にプラグインを無効化しているので、アップグレードを進めることができます。
Docker プラグインをアップグレードするには、再度 docker plugin install コマンドを使用し、プラグイン名を指定します。特定のバージョンを指定する場合は、タグも指定することができます。タグを指定しない場合、Docker は最新バージョンを取得します。同じプラグイン名を使用し、Docker がアップグレードプロセスを処理します。
sudo docker plugin install rexray/s3fs --grant-all-permissions
このコマンドは、rexray/s3fs プラグインを再度インストールしようとします。既にバージョンがインストールされているため、Docker はこれをアップグレードの試行と認識します。初回のインストールと同様に、アップグレードと権限の確認を求めるメッセージが表示されます。
Plugin "rexray/s3fs" is requesting the following permissions:
- network: host
- mount: /dev/fuse
- allow-sys-admin
- allow-cap-sys-admin
- allow-device /dev/fuse
- allow-cfg-unix-groups
- allow-runtime-privilege
- allow-force-remove
Do you grant the plugin these permissions? [y/N] y
y と入力して Enter キーを押して、アップグレードを進めます。Docker はプラグインの新しいバージョンをダウンロードし、既存のものを置き換えます。
アップグレードが完了すると、プラグインは無効化された状態のままになります。これを docker plugin ls コマンドを使用して確認できます。
sudo docker plugin ls
rexray/s3fs の ENABLED ステータスが false として表示されるはずです。ID が変更されている場合、新しいバージョンがインストールされたことを示します。
ID NAME DESCRIPTION ENABLED
yyyyyyyyyyyy rexray/s3fs REX-Ray S3FS Docker Volume Plugin false
プラグインをアップグレードすると、プラグインの実行ファイルと設定ファイルが新しいバージョンに置き換えられます。アップグレード後にプラグインを再度有効化して、使用できるようにすることが重要です。
アップグレードしたプラグインを再有効化して確認する
このステップでは、アップグレードした Docker プラグインを再度有効化し、正常に動作していることを確認します。プラグインをアップグレードすると、そのプラグインは無効化された状態のままになります。Docker で使用できるようにするには、明示的に有効化する必要があります。
docker plugin enable コマンドを使用して Docker プラグインを有効化できます。
sudo docker plugin enable rexray/s3fs
このコマンドは rexray/s3fs プラグインを有効化します。プラグインが正常に起動すると、コマンドは何も出力せずに完了します。プラグインの起動に問題がある場合は、エラーメッセージが表示されることがあります。
プラグインを有効化した後、docker plugin ls コマンドを使用してその状態を確認できます。
sudo docker plugin ls
これで、rexray/s3fs の ENABLED ステータスが true に戻って表示されるはずです。
ID NAME DESCRIPTION ENABLED
yyyyyyyyyyyy rexray/s3fs REX-Ray S3FS Docker Volume Plugin true
アップグレードしたプラグインが正常に動作していることをさらに確認するには、プラグインドライバを使用して別のボリュームを作成してみることができます。
sudo docker volume create --driver rexray/s3fs my-s3-volume-2
このコマンドは、rexray/s3fs ドライバを使用して my-s3-volume-2 という名前の新しいボリュームを作成します。プラグインが正常に機能している場合、このコマンドは成功するはずです(ただし、以前と同様に、設定されていない場合は S3 接続に関連する警告が表示されることがあります)。
ボリュームを再度一覧表示して、新しいボリュームを確認できます。
sudo docker volume ls
これで、my-s3-volume と my-s3-volume-2 の両方が DRIVER として rexray/s3fs と表示されるはずです。
DRIVER VOLUME NAME
rexray/s3fs my-s3-volume
rexray/s3fs my-s3-volume-2
これにより、アップグレードしたプラグインが有効化され、ボリュームの作成に使用できることが確認されます。
まとめ
この実験では、Docker プラグインのインストールと使用方法を学びました。具体的には、docker plugin install コマンドを使用して rexray/s3fs ボリュームプラグインをインストールし、必要な権限を付与しました。その後、docker plugin ls を使用してプラグインのインストールが成功し、有効化されていることを確認しました。
インストール後、アップグレードを行う前に docker plugin disable を使用してプラグインを無効化する重要なステップを学びました。その後、docker plugin upgrade コマンドを使用して新しいバージョンを指定してプラグインのアップグレードを行いました。最後に、docker plugin enable でアップグレードしたプラグインを再度有効化し、その状態と機能を確認し、アップグレードプロセスが成功したことを確認しました。



