docker plugin install コマンドを使ってプラグインをインストールおよび管理する方法

DockerDockerBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、docker plugin install コマンドを使用して Docker プラグインをインストールおよび管理する方法を学習します。デフォルト設定でプラグインをインストールする、特定のパラメータでプラグインをインストールして構成する、およびプラグインをすぐに有効化せずにインストールするなど、さまざまなインストールシナリオを探索します。

実践的な例を通じて、ストレージやその他の機能のために外部サービスを統合することで Docker の機能を拡張する実践的な経験を積むことができます。最後に、プラグインが正常にインストールされたことを確認する方法を学習します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/NetworkOperationsGroup(["Network Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") docker/SystemManagementGroup -.-> docker/system("Manage Docker") docker/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/ls -.-> lab-555191{{"docker plugin install コマンドを使ってプラグインをインストールおよび管理する方法"}} docker/inspect -.-> lab-555191{{"docker plugin install コマンドを使ってプラグインをインストールおよび管理する方法"}} docker/volume -.-> lab-555191{{"docker plugin install コマンドを使ってプラグインをインストールおよび管理する方法"}} docker/system -.-> lab-555191{{"docker plugin install コマンドを使ってプラグインをインストールおよび管理する方法"}} docker/network -.-> lab-555191{{"docker plugin install コマンドを使ってプラグインをインストールおよび管理する方法"}} end

デフォルト設定でプラグインをインストールする

このステップでは、デフォルト設定で 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_USERlabexSSH_HOSTlocalhost に設定してインストールされ、有効化されたことを確認します。これらのパラメータは、ボリュームを作成する際にプラグインによって使用されます。

有効化せずにプラグインをインストールする

このステップでは、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/s3fsvieux/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/s3fsvieux/sshfsENABLED (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 プラグインをインストールおよび管理する方法を学びました。デフォルト設定でプラグインをインストールする方法を実践しました。これには、単にプラグイン名を指定し、要求された権限を確認するだけです。

さらに、インストールプロセス中に特定の構成パラメータを設定しながらプラグインをインストールする方法を調べ、最初からプラグインの動作をカスタマイズする方法を示しました。最後に、プラグインが正常にインストールされたことを確認する方法を学びました。