はじめに
この実験では、Docker プラグインをレジストリにプッシュすることで共有する方法を学びます。まず、Docker 環境に現在インストールされているプラグインを一覧表示し、利用可能なプラグインを把握します。
その後、Docker プラグインをレジストリにプッシュする練習を行い、プラグインを共有または保存できるようにします。最後に、特定のタグ付きでプラグインをプッシュする方法を学び、共有するプラグインのバージョン管理と整理を行います。
既存のプラグインを一覧表示する
このステップでは、Docker 環境にインストールされている既存のプラグインを一覧表示する方法を学びます。プラグインは Docker の機能を拡張し、ボリューム管理やネットワークドライバなどの機能を追加することができます。
現在インストールされている Docker プラグインを一覧表示するには、docker plugin ls コマンドを使用できます。このコマンドは、プラグインの一覧、その状態、およびその他の関連情報を表示します。
環境内のプラグインを一覧表示してみましょう。
docker plugin ls
次のような出力が表示されるはずです(正確な出力は環境によって異なります)。
ID NAME DESCRIPTION ENABLED
デフォルトの LabEx 環境では、通常、デフォルトでプラグインはインストールされていないため、出力は空のリスト、または個別のプラグインとしてはリストされない必須の組み込みコンポーネントのみを表示することが多いです。これは正常な動作です。
docker plugin ls コマンドは、どのプラグインが利用可能で、有効または無効になっているかをすぐに確認するのに便利です。これは Docker プラグインを管理する最初のステップです。
プラグインをレジストリにプッシュする
このステップでは、Docker プラグインをレジストリにプッシュする方法を学びます。プラグインをプッシュすることで、他の人と共有したり、後で使用するために保存することができます。プラグインをプッシュする前に、利用可能なプラグインが必要です。デモンストレーションのために、簡単なサンプルプラグインを使用します。
まず、サンプルのプラグインイメージを取得しましょう。ここでは vieux/sshfs プラグインを例に使用します。このプラグインを使用すると、Docker ボリュームに SSHFS を利用できます。
docker plugin install vieux/sshfs
プラグインの機能を許可するかどうかを求められます。y と入力して Enter キーを押します。
Plugin "vieux/sshfs" is requesting the following privileges:
- network: [host]
- mount: [/dev/fuse]
- allow-devices: [fuse]
- authz: []
- capabilities: [CAP_SYS_ADMIN]
Do you grant the plugin these privileges? [y/N] y
プラグインのインストールが完了したら、再度 docker plugin ls コマンドを使用して、インストールと状態を確認できます。
docker plugin ls
これで vieux/sshfs プラグインが一覧に表示され、その状態が true(有効)になっているはずです。
ID NAME DESCRIPTION ENABLED
<plugin_id> vieux/sshfs Mount sshfs volumes true
プラグインがインストールされたので、レジストリにプッシュすることができます。プラグインをプッシュするには、docker plugin push コマンドの後にプラグイン名を指定します。この例では、vieux/sshfs プラグインをプッシュします。
docker plugin push vieux/sshfs
特定のレジストリ(Docker Hub など)にプッシュしていないため、このコマンドはデフォルトのレジストリにプッシュしようとします。実際のシナリオでは、まず docker login を使用してレジストリにログインし、プッシュコマンドでレジストリを指定する必要があります(例:docker plugin push your-registry.com/vieux/sshfs)。
出力には、プッシュ操作の進行状況が表示されます。
The push refers to repository [docker.io/vieux/sshfs]
Pushed plugin vieux/sshfs:<tag>
このコマンドは、プラグインを指定されたレジストリにプッシュします。タグが指定されていない場合、通常はデフォルトで latest タグが使用されます。
特定のタグ付きでプラグインをプッシュする
このステップでは、特定のタグ付きで Docker プラグインをレジストリにプッシュする方法を学びます。タグ付けを行うことで、プラグインのバージョン管理や異なるリリースの管理が可能になります。
前のステップでは、vieux/sshfs プラグインをインストールし、プッシュしました。タグを指定せずにプッシュした場合、おそらくデフォルトの latest タグが使用されました。では、同じプラグインを特定のタグ、例えば 1.0 を付けてプッシュしてみましょう。
特定のタグ付きでプラグインをプッシュするには、docker plugin push コマンドの後に、コロン (:) で区切ったプラグイン名とタグを指定します。
docker plugin push vieux/sshfs:1.0
このコマンドは、タグ 1.0 付きの vieux/sshfs プラグインをデフォルトのレジストリにプッシュします。前のステップと同様に、カスタムレジストリを使用する実際のシナリオでは、プラグイン名の前にレジストリアドレスを含める必要があります(例:docker plugin push your-registry.com/vieux/sshfs:1.0)。
出力には、プッシュ操作の進行状況が表示され、指定されたタグ付きでプラグインがプッシュされていることが示されます。
The push refers to repository [docker.io/vieux/sshfs]
Pushed plugin vieux/sshfs:1.0
タグを使用することで、レジストリ内にプラグインの複数のバージョンを管理することができます。これは、アップデートの管理や互換性の確保に重要です。例えば、vieux/sshfs:1.0、vieux/sshfs:1.1、vieux/sshfs:latest といったタグを持つプラグインを用意することで、ユーザーは必要な特定のバージョンを取得することができます。
これで Docker プラグインのプッシュに関するステップは終了です。レジストリにプラグインをプッシュする方法と、プッシュ操作中にタグを指定する方法を学びました。
まとめ
この実験では、Docker プラグインの管理方法、特にプラグインの一覧表示とレジストリへのプッシュ方法を学びました。まず、docker plugin ls コマンドを使用してインストールされたプラグインを表示し、デフォルトの環境ではリストが空になることがあることを理解しました。
その後、プラグインをレジストリにプッシュする練習を行いました。これには、サンプルプラグイン (vieux/sshfs) のインストールと、docker plugin push コマンドを使用した共有が含まれていました。また、特定のタグ付きでプラグインをプッシュする方法も学び、これによりレジストリ内でのバージョン管理と整理が容易になります。これらの手順は、カスタムまたはサードパーティの Docker 機能を共有および管理するために重要です。



