Docker プラグインの理解¶
サードパーティー製のプラグインを読み込むことで、Docker エンジンの能力を拡張できます。このページではプラグインの種類についてと、いくつかの Docker 向けボリュームとネットワークのプラグインのリンクを紹介します。
プラグインの種類¶
プラグインは Docker の機能性を拡張します。拡張機能には複数の種類があります。たとえば、 volume plugin は複数のホストを横断して存在する Docker ボリュームを有功にします。 network plugin はネットワークの管(plumbing)を提供するでしょう。
現時点の Docker はボリュームとネットワーク・ドライバのプラグインをサポートしています。近いうちに、他のプラグインの種類もサポートするでしょう。
プラグインのインストール¶
設定方法は、プラグインのドキュメントをご覧ください。
プラグインを見つける¶
次のようなプラグインがあります。
- Blockbridge plugin はボリューム・プラグインです。コンテナをベースとした持続型のストレージ向けオプション、その拡張セットへのアクセスを提供します。1つまたは複数の Docker 環境で、テナントの分離、自動プロビジョニング、暗号化、安全な削除、スナップショット、QoS といった機能を提供します。
- Convoy plugin は、 device mapper や NSF を含む様々なストレージのバックエンドに対応するボリューム・プラグインです。Go 言語で書かれたシンプルなスタンドアローンのバイナリであり、スナップショット、バックアップ、リストアといったベンダ固有の拡張をサポートしたフレームワークを提供します。
- Flocker plugin は Docker 対応の複数ホストで、ボリュームをポータブルに持ち運ぶためのプラグインです。これにより、データベースや他のステートフル(状態を持たない)なコンテナを、クラスタ上のマシンにまたがって実行できるようにします。
- GlusterFS plugin は、Docker が GlusterFS を使って複数ホストのボリュームを管理可能にするプラグインです。
- Kyewhiz plugin は、Keywhiz を中央リポジトリとして、証明書やシークレット(秘密情報)の管理を提供するプラグインです。
- Netshare plugin は NFS v3/v4 、AWS FEC、CIFS ファイルシステムでボリュームを管理するプラグインです。
- OpenStorage Plugin はクラスタ検出ボリューム・プラグインであり、ファイルやブロック・ストレージにおけるボリューム管理ソリューションを提供します。扱えるのは、ベンダー中立の拡張機能です。たとえば CoS、暗号化、スナップショットです。サンプル・ドライバがベースにしているのは、FUSE、NFS、NBD、EBS などです。
- Pachyderm PFS plugin は Go 言語で書かれたボリューム・プラグインです。PFS (Pachyderm File System) リポジトリにマウントできる機能を提供します。Docker コンテナがなくても、ボリュームに対するコミットを行えるようにします。
- REX-Ray plugin は Go 言語で書かれたボリューム・プラグインです。ES2、OpenStack、XtreamIO、ScaleIO を含む多くのプラットフォームに対応した高度なストレージ機能を提供します。
- Contiv Volume Plugin はオープンソースのボリューム・プラグインです。ceph をベースとした技術により、マルチ・テナントで、永続型、分散したストレージを提供します。
- Contiv Networking はオープンソースの libnetwork プラグインであり、マルチ・テナントのマイクロサービスのデプロイにおけるインフラとセキュリティ・ポリシーを提供します。この環境では、コンテナに対する負担無しに、物理ネットワークの統合をもたらします。Contiv Networking は Docker 1.9 以降で利用可能な リモート・ドライバと IPAM API を実装しています。
- Weave Network Plugin は Docker コンテナを結ぶ仮想ネットワークを作成します。これは複数のホストやクラウドをまたがり、アプリケーションの自動的な発見を可能にします。Weave network は弾力性(resilient)があり、分散耐性(partition tolerant)があり、安全で、部分的なネットワークでも利用できます。他のツールによる環境と異なり、全ての設定が極めて単純です。
プラグインのトラブルシューティング¶
プラグインを読み込んだ後で Docker に問題が起こったら、プラグインの作者に助けを求めてください。Docker チームはあなたを助けられません(訳者注:Docker コミュニティ外のツールのため)。
プラグインを書くには¶
Docker プラグインを書くことに興味があれば、あるいは、水面下でどのような処理がされているかに興味があれば、 docker プラグイン・リファレンス をご覧ください。
参考
- Understand Engine plugins
- https://docs.docker.com/engine/extend/plugins/