Docker ネットワーク・プラグイン

Docker ネットワーク・プラグインは、Docker が広範囲のネットワーク技術のサポートによりデプロイできるように拡張されています。XVLAN、IPVLAN、MACVLAN 、あるいはこれらとも全く異なります。ネットワーク・ドライバ・プラグインは LibNetwork プロジェクトによってサポートされています。各ネットワーク・プラグインは LibNetwork の「リモート・ドライバ」であり、これは Docker とプラグイン基盤を共有するものです。効果的なのは、プラグイン基盤の共有によって、他のプラグインを同じように扱え、かつ同様のプロトコルを扱えることです。

ネットワーク・ドライバ・プラグインを使う

ネットワーク・ドライバ・プラグインのインストール実行は、個々のプラグインに依存します。そのため、プラグインをインストールするには、各プラグインの開発者から指示を得てください。

ネットワーク・ドライバを実行しても、内部ネットワーク・ドライバのように扱えないかもしれません。ネットワーク対応の Docker コマンドでドライバを操作します。例えば、次のようなコマンドです。

$ docker network create --driver weave mynet

ネットワーク・ドライバのプラグイン一覧は、 こちら をご覧ください。

mynet ネットワークは weave の所有となりましたので、以下に続くコマンドは、プラグインの管理するネットワークに対して送信されます。

$ docker run --net=mynet busybox top

ネットワーク・プラグインを書くには

ネットワーク・プラグインの実装は、 Docker プラグイン API のネットワーク・プラグイン・プロトコルをご覧ください。

ネットワーク・プラグイン・プロトコル

ネットワーク・ドライバ・プロトコルとは、プラグイン・アクティベーション・コール(plugin activation call)の追加です。詳細については libnetwork の該当ドキュメント https://github.com/docker/libnetwork/blob/master/docs/remote.md をご覧ください。

関連情報

Docker メンテナや他のユーザと対話するには、IRC チャンネルの #docker-network にお越し下さい。

参考

Engine network driver plugins
https://docs.docker.com/engine/extend/plugins_network/