Docker について学び始めたばかりで、VM ベースのインフラストラクチャを Docker インフラストラクチャに置き換えることを検討しています。コンテナー間の依存関係を処理する方法と、依存コンテナーの再起動が必要な場合/必要な場合を決定する方法、および必要な場合はダウンタイムを最小限に抑える方法について疑問に思っています。
より正確に言うと、コンテナーと依存関係を管理するためのfigやDeckingなどのツールを発見したので、(運が良ければ) コンテナーを起動または停止する順序を示す有向非巡回グラフを取得できます。たとえば、mongodb コンテナーは webserver コンテナーなどの前に開始する必要があります。
したがって、MongoDB を更新したり、設定を変更したりする場合は、データベースが存在しないとうまく処理できないため、Web サーバーもシャットダウンする必要があると思います。この場合、Jetty webapp の再デプロイなど、コンテナーのシャットダウンと再起動によって発生するダウンタイムを最小限に抑えるにはどうすればよいでしょうか?
しかし、SMTP サーバーを更新するだけで (多かれ少なかれ他のすべてのコンテナーが依存している)、コンテナー インフラストラクチャ全体の再起動をトリガーしたくありません。では、メールサーバー コンテナーの再起動後、他のコンテナーは以前にリンクされたポートに到達できますか?
その状況にどのように対処しますか?アンバサダー コンテナー ABC_amb をすべてのコンテナー ABC に追加する必要がありますか? ABC の再起動中などにダウンして接続を保持することはありませんか?