5

私はDocker Compose(v2)を実行しており、ノードサービス(ウェブサイト)とPythonベースのapiをnginxとともに配置しています。nginxロードバランサのアップストリーム設定にドッカーコンテナを自動的に追加します

私がしたいことの1つは、より多くのコンテナを追加してサービスを拡張できることです。私がどれくらい多くのコンテナを持っているかを事前に知っていれば、ドッキング可能なコンテナのIPへの参照を使って、nginx上流の設定をハードコードすることができます。しかし、問題は、アップストリームのnginx設定を動的にしたいということです。別のDockerコンテナを追加すると、上流のブロックのIPの上流のリストにコンテナの場所が追加されます。

私の考えは、コンテナが変更されたときにenv変数を使用してアップストリームサーバーを自動的に追加するスクリプトを作成することでしたが、どこから始めるべきかわかりません。

答えて

2

これを達成する方法はいくつかあります。あなたが参照しているものは、通常、サービス発見と呼ばれ、多くの形式があります。これまでに使ったことのあるものを2つ説明します。

最初の最も単純なもの(単一のサーバーでうまく動作するか、1つのサーバーでローカルにコンテナを検出する)は、DockerソケットまたはAPIを使用するローカルプロキシです。 https://github.com/jwilder/nginx-proxyは一般的なものの1つで、Composeでスケーラブルなサービスのプロトタイプ作成にはうまくいくはずです。

もうひとつの方法(マルチホストの方がより複雑ですが)はレジストリ(etcdやConsulなど)にサービスを登録してから、設定を動的に書き出すことです。これを行うには、登録システム(https://github.com/gliderlabs/registratorなど)を使用してコンテナとそのポートを登録します。プロキシまたはアプリケーションは、https://github.com/kelseyhightower/confdのようなテンプレートシステムを使用して書き出された構成ファイルを使用できます。

+0

これはまさに私が探していたものですね、ありがとう! – ExoticChimp

関連する問題