はじめに
この実験では、docker plugin rm
コマンドを使用して Docker プラグインを削除する方法を学びます。まず、サンプルプラグインをインストールして作業を始めます。次に、プラグインが有効な状態で削除を試み、デフォルトの動作と遭遇するエラーを理解します。
削除が失敗した後、削除の必要な前提条件であるプラグインの無効化方法を学びます。最後に、無効化されたプラグインを正常に削除し、強制削除フラグを使用するオプションについても調べます。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、docker plugin rm
コマンドを使用して Docker プラグインを削除する方法を学びます。まず、サンプルプラグインをインストールして作業を始めます。次に、プラグインが有効な状態で削除を試み、デフォルトの動作と遭遇するエラーを理解します。
削除が失敗した後、削除の必要な前提条件であるプラグインの無効化方法を学びます。最後に、無効化されたプラグインを正常に削除し、強制削除フラグを使用するオプションについても調べます。
このステップでは、Docker プラグインをインストールする方法を学びます。Docker プラグインは Docker の機能を拡張し、ストレージ、ネットワーキング、ロギングなどの外部システムとの統合を可能にします。
このプロセスを実演するために、簡単なサンプルプラグインをインストールします。プラグインをインストールするコマンドは docker plugin install
です。インストール中に、プラグインの機能とパーミッションを承認する必要があります。
まず、vieux/sshfs
プラグインをインストールしましょう。このプラグインを使用すると、SSHFS を使ってボリュームをマウントできます。
docker plugin install vieux/sshfs
プラグインの機能を承認するように求められます。y
と入力して Enter キーを押して続行します。
Plugin "vieux/sshfs" is requesting the following capabilities:
- Network: host
- Mounts: [/dev/fuse]
- Args: [--sshkey-path]
Do you grant the plugin these permissions? [y/N] y
承認すると、プラグインがインストールされ、有効化されます。インストールされたプラグインを一覧表示することで、インストールを確認できます。
docker plugin ls
vieux/sshfs
が ENABLED
ステータスが true
として一覧に表示されるはずです。
前のステップで、vieux/sshfs
プラグインをインストールし、有効化しました。このステップでは、このプラグインがまだ有効な状態で削除を試みます。これにより、有効なプラグインを直接削除することはできないことがわかります。
Docker プラグインを削除するコマンドは docker plugin rm
です。vieux/sshfs
プラグインの削除を試みましょう。
docker plugin rm vieux/sshfs
プラグインが有効であり、削除できないことを示すエラーメッセージが表示されます。これは、Docker が現在使用中またはアクティブなプラグインの削除を防止するため、予想される動作です。
出力は次のようになります。
Error response from daemon: plugin vieux/sshfs is enabled. Disable it before removing
これにより、プラグインを削除する前に無効化する必要があることが確認されます。次のステップでは、プラグインを無効化する方法を学びます。
前のステップで、有効な Docker プラグインは削除できないことを学びました。プラグインを削除するには、まず無効化する必要があります。
Docker プラグインを無効化するコマンドは docker plugin disable
です。ここでは、最初のステップでインストールした vieux/sshfs
プラグインを無効化します。
docker plugin disable vieux/sshfs
このコマンドはプラグインを停止し、非アクティブにします。コマンドが成功すると、あまり多くの出力は表示されません。
プラグインが無効化されたことを確認するには、再度インストールされたプラグインを一覧表示します。
docker plugin ls
このとき、vieux/sshfs
の出力で ENABLED
が false
と表示されるはずです。
ID NAME DESCRIPTION ENABLED
f51132325c3b vieux/sshfs Create SSHFS mounts true
待ってください、出力がまだ true
と表示されていますか?これは docker plugin ls
コマンドがキャッシュされた情報を表示する可能性があるためです。再度プラグインを一覧表示して、更新されたステータスを確認しましょう。
docker plugin ls
これで、vieux/sshfs
の ENABLED
ステータスが false
と表示されるはずです。
ID NAME DESCRIPTION ENABLED
f51132325c3b vieux/sshfs Create SSHFS mounts false
プラグインは現在無効化されており、削除できる状態になりました。
前のステップで、vieux/sshfs
プラグインを正常に無効化しました。プラグインが無効化されたので、docker plugin rm
コマンドを使用して削除することができます。
docker plugin rm vieux/sshfs
プラグインが正常に削除された場合、出力にプラグイン名が表示されます。
vieux/sshfs
プラグインが削除されたことを確認するには、再度インストールされたプラグインを一覧表示します。
docker plugin ls
今回は、vieux/sshfs
プラグインが一覧に表示されなくなっているはずです。
これにより、Docker プラグインを削除する標準的な手順(まず無効化し、次に削除する)が実証されました。次のステップでは、プラグインを強制的に削除しようとした場合に何が起こるかを調べます。
前のステップで、プラグインを削除する前に無効化する必要があることを学びました。有効なプラグインを強制的に削除しようとするとどうなるでしょうか?
docker plugin rm
コマンドには、--force
または -f
フラグがあり、プラグインを強制的に削除しようとする際に使用できます。ただし、強制フラグを使用しても、Docker は有効なプラグインを削除しません。
まず、vieux/sshfs
プラグインを再度インストールして、有効なプラグインを用意しましょう。
docker plugin install vieux/sshfs
機能を承認するように求められたら、y
と入力して Enter キーを押すことを忘れないでください。
プラグインが再度インストールされ、有効になったので、強制フラグを使用して削除してみましょう。
docker plugin rm --force vieux/sshfs
強制フラグを使用せずに削除しようとしたときと同様のエラーメッセージが表示され、プラグインが有効であり削除できないことが示されます。
Error response from daemon: plugin vieux/sshfs is enabled. Disable it before removing
これにより、強制フラグはプラグインを削除する前に無効化する必要を無視することはできないことが確認されます。強制フラグは通常、コンテナ、イメージ、またはボリュームを削除するなど、他の Docker のコンテキストで特定のチェックをバイパスするために使用されますが、有効なプラグインの削除には適用されません。
後片付けとして、必要に応じて、先ほど学んだ手順に従って、プラグインを再度無効化して削除することができます。
この実験では、docker plugin install
を使用して Docker プラグインをインストールする方法を学び、docker plugin ls
でインストールを確認しました。その後、docker plugin rm
を使用して有効なプラグインを削除しようとし、Docker がアクティブなプラグインの削除を防止し、まず無効化する必要があることを発見しました。