はじめに
この実験では、docker plugin install コマンドを使用して Docker プラグインをインストールおよび管理する方法を学習します。デフォルト設定でプラグインをインストールする、特定のパラメータでプラグインをインストールして構成する、およびプラグインをすぐに有効化せずにインストールするなど、さまざまなインストールシナリオを探索します。
実践的な例を通じて、ストレージやその他の機能のために外部サービスを統合することで Docker の機能を拡張する実践的な経験を積むことができます。最後に、プラグインが正常にインストールされたことを確認する方法を学習します。
デフォルト設定でプラグインをインストールする
このステップでは、デフォルト設定で Docker プラグインをインストールする方法を学習します。Docker プラグインは Docker の機能を拡張し、ストレージやネットワーキングなどの外部システムとの統合を可能にします。
プラグインをインストールするには、docker plugin install コマンドの後にプラグイン名を指定します。デフォルトでは、Docker は Docker Hub からプラグインを取得します。
Docker ボリュームに S3 ベースのストレージを提供する rexray/s3fs プラグインをインストールしましょう。
docker plugin install rexray/s3fs
このコマンドを実行すると、Docker はプラグインをダウンロードし、必要な権限を付与するかどうかの確認を求めます。y と入力して Enter キーを押して続行します。
Plugin "rexray/s3fs" is requesting the following permissions:
- network: [host]
- mount: [/dev/fuse]
- allow-vulnerable-api: true
- allow-host-access: true
- allow-device: [/dev/fuse]
- allow-cap: [sys_admin]
Do you grant the plugin "rexray/s3fs" these permissions? [y/N] y
確認後、Docker はプラグインをインストールして有効化します。プラグインがインストールされ、有効化されたことを示す出力が表示されるはずです。
rexray/s3fs:latest
この出力は、rexray/s3fs プラグインが正常にインストールされ、現在有効化されており、S3 ベースのボリュームの作成に使用できることを確認します。
プラグインをインストールして設定パラメータを設定する
このステップでは、Docker プラグインをインストールし、インストール中に特定のパラメータで構成する方法を学習します。一部のプラグインは、正しく機能するために API キー、エンドポイント、またはその他のサービス固有の詳細などの構成設定が必要です。
docker plugin install コマンドに対して、plugin_name parameter_name=parameter_value の形式で構成パラメータを渡すことができます。
Docker ボリュームに SSHFS を使用できる vieux/sshfs プラグインをインストールしましょう。このプラグインでは、SSH ユーザーとホストを指定する必要があります。
docker plugin install vieux/sshfs SSH_USER=labex SSH_HOST=localhost
前のステップと同様に、Docker はプラグインをダウンロードし、権限を求めます。y と入力して Enter キーを押して権限を付与します。
Plugin "vieux/sshfs" is requesting the following permissions:
- network: [host]
- mount: [/dev/fuse]
- allow-vulnerable-api: true
- allow-host-access: true
- allow-device: [/dev/fuse]
- allow-cap: [sys_admin]
Do you grant the plugin "vieux/sshfs" these permissions? [y/N] y
確認後、指定された構成パラメータでプラグインがインストールされ、有効化されます。
vieux/sshfs:latest
この出力は、vieux/sshfs プラグインが SSH_USER を labex、SSH_HOST を localhost に設定してインストールされ、有効化されたことを確認します。これらのパラメータは、ボリュームを作成する際にプラグインによって使用されます。
プラグインを有効化せずにインストールする
このステップでは、Docker プラグインをインストールしながら、すぐに有効化しない方法を学びます。これは、プラグインをインストールしたいが、使用準備ができるまでアクティブにしたくない場合や、有効化する前に追加の構成手順が必要な場合に便利です。
プラグインを有効化せずにインストールするには、docker plugin install コマンドに --disable フラグを使用します。
CNI (Container Network Interface) ネットワーク機能を提供する containernetworking/cni プラグインをインストールしましょうが、現時点では無効のままにしておきます。
docker plugin install --disable containernetworking/cni
Docker はプラグインをダウンロードし、権限を求めます。y と入力して Enter キーを押して権限を付与します。
Plugin "containernetworking/cni" is requesting the following permissions:
- network: [host]
- mount: [/dev/fuse]
- allow-vulnerable-api: true
- allow-host-access: true
- allow-device: [/dev/fuse]
- allow-cap: [sys_admin]
Do you grant the plugin "containernetworking/cni" these permissions? [y/N] y
確認後、プラグインはインストールされますが、無効状態のままになります。
containernetworking/cni:latest
この出力は、containernetworking/cni プラグインが正常にインストールされたことを確認します。次のステップでは、その状態を確認します。
インストールされたプラグインを確認する
このステップでは、インストールされた Docker プラグインの状態を確認する方法を学びます。どのプラグインがインストールされているか、そのバージョン、および有効化または無効化されているかを確認できます。
すべてのインストールされたプラグインをリストするには、docker plugin ls コマンドを使用します。
docker plugin ls
このコマンドは、各インストールされたプラグインに関する情報を含む表を表示します。これには、ID、名前、説明、有効化状態、およびバージョンが含まれます。
前のステップでインストールした 3 つのプラグイン rexray/s3fs、vieux/sshfs、および containernetworking/cni が表示されるはずです。
ID NAME DESCRIPTION ENABLED VERSION
a1b2c3d4e5f6 rexray/s3fs:latest REX-Ray S3FS Plugin true latest
g7h8i9j0k1l2 vieux/sshfs:latest The `sshfs` plugin for Docker. true latest
m3n4o5p6q7r8 containernetworking/cni:latest CNI network plugin for Docker false latest
rexray/s3fs と vieux/sshfs は ENABLED (true) としてリストされているのに対し、containernetworking/cni は --disable フラグを使用してインストールしたため、ENABLED (false) としてリストされていることに注意してください。
特定のプラグインについてより詳細な情報を調べるには、docker plugin inspect コマンドの後にプラグイン名または ID を指定します。
containernetworking/cni プラグインを調べてみましょう。
docker plugin inspect containernetworking/cni
このコマンドは、プラグインのすべての構成と状態情報を含む詳細な JSON オブジェクトを出力します。この出力を調べることで、プラグインの設定と状態を確認できます。出力内の "Enabled": false の行を探して、プラグインが無効化されていることを確認してください。
[
{
"Id": "m3n4o5p6q7r8",
"Name": "containernetworking/cni:latest",
"Enabled": false,
"Settings": {
"Args": [],
"Env": [],
"Devices": [],
"Mounts": []
},
"PluginReference": "docker.io/containernetworking/cni:latest",
"Config": {
"DockerVersion": "20.10.21",
"Description": "CNI network plugin for Docker",
"Documentation": "https://github.com/containernetworking/cni",
"Interface": {
"Types": ["docker.networkdriver/1.0"],
"Socket": "cni.sock"
},
"Entrypoint": ["/docker-cni-plugin"],
"PropagatedMount": "/opt/cni",
"WorkDir": "",
"User": {},
"Args": {
"Name": "",
"Description": ""
},
"Linux": {
"Capabilities": ["CAP_SYS_ADMIN"],
"AllowAllDevices": false,
"Devices": [
{
"Name": "fuse",
"Path": "/dev/fuse"
}
]
},
"Rootfs": {
"Type": "tar",
"DiffIds": ["sha256:..."]
}
}
}
]
このステップで、Docker プラグインのインストールと確認のプロセスが終了します。デフォルト設定でプラグインをインストールする方法、特定の構成パラメータでインストールする方法、およびすぐに有効化せずにインストールする方法を学びました。また、インストールされたプラグインをリストして調べ、その状態を確認する方法も学びました。
まとめ
この実験では、docker plugin install コマンドを使用して Docker プラグインをインストールおよび管理する方法を学びました。デフォルト設定でプラグインをインストールする方法を実践しました。これには、単にプラグイン名を指定し、要求された権限を確認するだけです。
さらに、インストールプロセス中に特定の構成パラメータを設定しながらプラグインをインストールする方法を調べ、最初からプラグインの動作をカスタマイズする方法を示しました。最後に、プラグインが正常にインストールされたことを確認する方法を学びました。



