はじめに
この実験では、docker plugin create コマンドを使用して Docker プラグインを作成する方法を学びます。このプロセスには、プラグインに必要なディレクトリ構造と設定ファイルを準備し、それらのコンポーネントからコマンドを使用してプラグインをビルドすることが含まれます。
この実験では、プラグインのデータディレクトリを準備する手順を案内します。これには、プラグインのプロパティとインターフェースを定義する config.json ファイルを作成することが含まれます。その後、準備したデータに基づいてプラグインをビルドするために docker plugin create コマンドを実行します。最後に、プラグインが正常に作成され、Docker 環境で利用可能であることを確認します。
プラグインのデータディレクトリを準備する
このステップでは、Docker プラグインに必要なディレクトリ構造を準備します。Docker プラグインは正しく機能するために特定のディレクトリレイアウトが必要です。このディレクトリには、プラグインの設定と必要なその他のファイルが含まれます。
まず、プロジェクトディレクトリに移動します。
cd ~/project
次に、プラグインのデータ用のディレクトリを作成します。ここでは my-plugin-data という名前を付けます。
mkdir my-plugin-data
my-plugin-data ディレクトリの中に、config.json という名前の設定ファイルを作成する必要があります。このファイルには、プラグインの設定詳細が含まれます。
cd my-plugin-data
nano config.json
config.json ファイルに以下の内容を追加します。これは、プラグインのタイプと説明を指定する基本的な設定です。
{
"Description": "My first Docker plugin",
"Types": [
{
"Name": "volume",
"Description": "A simple volume plugin"
}
],
"Interface": {
"Types": ["docker.volumedriver/1.0"],
"Socket": "my-plugin.sock"
},
"Entrypoint": ["/usr/local/bin/my-plugin"]
}
config.json ファイルを分解して説明しましょう。
Description: プラグインの人間が読める説明です。Types: 提供されるプラグインのタイプを指定します。この場合はvolumeプラグインです。Interface: プラグインのインターフェースを定義します。Types: インターフェースのタイプを指定します。ボリュームドライバの場合はdocker.volumedriver/1.0です。Socket: プラグインがリッスンする Unix ドメインソケットの名前です。Docker はこのソケットを介してプラグインと通信します。
Entrypoint: プラグインが有効になったときに Docker が実行するコマンドです。これは、プラグインのルートファイルシステム内のプラグインの実行可能ファイルへのパスである必要があります。
Ctrl + X を押し、次に Y を押し、最後に Enter を押して、ファイルを保存して nano エディタを終了します。
最後に、プロジェクトのルートディレクトリに戻ります。
cd ~/project
これで、Docker プラグインの基本的なディレクトリ構造と設定ファイルが正常に作成されました。
docker plugin create を使用してプラグインを作成する
このステップでは、前のステップで準備したディレクトリに基づいて、docker plugin create コマンドを使用してプラグインを作成します。docker plugin create コマンドは、プラグイン名とプラグインのデータディレクトリへのパスを引数として受け取ります。
コマンドの構文は docker plugin create <plugin-name> <plugin-data-directory> です。
プラグインの名前を my-plugin とし、作成した my-plugin-data ディレクトリを使用します。~/project ディレクトリにいることを確認してください。
cd ~/project
sudo docker plugin create my-plugin ./my-plugin-data
プラグインが作成されていることを示す出力が表示されるはずです。成功した場合、コマンドはエラーなしで完了します。
docker plugin create コマンドは、指定されたディレクトリから config.json ファイルを読み取り、Docker デーモンにプラグインを登録します。この時点で、プラグインは作成されましたが、まだ有効にはなっていません。
作成したプラグインを確認する
このステップでは、プラグインが正常に作成され、Docker によって一覧表示されることを確認します。docker plugin ls コマンドを使用して、利用可能なすべてのプラグインを一覧表示できます。
~/project ディレクトリにいることを確認してください。
cd ~/project
sudo docker plugin ls
このコマンドの出力には、プラグインのリストが表示されるはずです。my-plugin のエントリが disabled のステータスで表示されるはずです。これは、プラグインが Docker に登録されているが、まだアクティブではないことを確認します。
出力は次のようになります(ID は異なります)。
ID NAME TAG DESCRIPTION ENABLED
a1b2c3d4e5f6 my-plugin My first Docker plugin false
ENABLED 列に false が表示されていることは、プラグインが現在無効になっていることを示しています。プラグインを使用するには、docker plugin enable を使用して有効にする必要があります。ただし、これはプラグイン構造の作成のデモンストレーションに過ぎないため、この実験では有効にしません。
これで、Docker プラグインを正常に作成し、その存在を確認しました。
まとめ
この実験では、Docker プラグインに必要なディレクトリ構造と設定ファイルを準備する方法を学びました。これには、プラグインのデータ用に専用のディレクトリを作成し、config.json ファイル内でプラグインの説明、タイプ、インターフェース、エントリポイントなどの特性を定義することが含まれていました。この基礎的なステップは、Docker がプラグインとどのように相互作用し、管理するかを定義するために重要です。



