オーバーレイネットワークを有効にして構成した状態で、2つのホスト間でDockerを実行しています。それはバージョン1.12.1でKVストアとしてConsulがありますが、Swarmを使用していないのは主に、可用性の確保とリソースの最小化に関する制御を私たちに与えてくれたとは思えないからです。Dockerオーバーレイネットワークは削除されたコンテナをクリーンアップしません
私たちのセットアップはマイクロサービスに基づいており、かなり頻繁に再起動される非常に多くのコンテナを実行します。私たちのモデルでは、さまざまな理由でサービス検出のための "リバースプロキシ"としてnginxを使用しています。したがって、 "nginx-lb"の--hostを共有する複数のコンテナを開始します。これは正常に動作し、ネットワーク上の他のコンテナはnginx-lbに接続することができ、コンテナのIPアドレスのうちランダムな1つを与えます。
私たちの問題は、コンテナを殺したり新しいコンテナを作成したりするときに(時にはこれがどのような状況になるかわからない)、オーバーレイネットワークは古いコンテナをシステムから削除しないため、死んだものに接続しようとすると、問題が発生します。
これを解決する唯一の方法は、手動でdocker network disconnect -f overlay_net [container]
を呼び出して、すでにdocker network inspect overlay_net
を実行して誤ったコンテナを見つけることです。
KVデータからデッドコンテナを削除しないオーバーレイネットワークに関する既知の問題、または修正のアイデアはありますか?