3

docker コンテナーが他の docker コンテナー内で実行されている環境で (特権として実行するのではなく、docker ソケットをマウントすることによって)、次のようなことを行うためにネットワークを操作する方法はありますか?

  • レイテンシーを導入する
  • パケットのドロップ %
  • 帯域幅の上限

私はコンテナーからの docker-to-docker トラフィックにのみ関心があります。docker-py (環境内) で自分自身を開始しています。docker から localhost へ、docker からインターネットへなど、他のトラフィックを操作することは気にしません。多くの点で、docker-docker ネットワーク トラフィックのみを操作することが理想的です。

次のいずれかの状況で実行されている docker コンテナー内でも、これを行う方法はたくさんあります。

  • 特権モード
  • --cap-add=NET_ADMINフラグ ランタイムを渡す

いくつかのユーティリティ (iptables、tc、およびそれらを使用して実装されたあらゆる種類のライブラリ) ではこれが可能です。ただし、「ホスト」コンテナは特権モードで起動されないため、すべての環境で利用できるよりも高い権限が必要です。

システム構成を制御できません。これらのコンテナーは、特権モードで開始するのではなく、別のコンテナー内で実行する必要があります上記のユーティリティのいずれかを使用できるため、これを変更できれば簡単です。

すべてのコンテナは、単純に によって作成されたネットワークに接続されていdocker network create foobarます。

Python3.4 で書かれた私のアプリケーションは、OSX で docker-py を使用しています。

  • docker から docker へのネットワーク特性のネットワークを操作して、レイテンシーやパケットドロップなどを導入する方法はありますか?
4

1 に答える 1