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/