
自分のクラスタで実行されているWebアプリケーションがある場合は、外部クライアントからそのアプリケーションにどのようにアクセスしますか?リバースプロキシが必要ですか、それともそれを実行する「クラスタリング方式」がありますか?
答え1
サービスを作成するときにこのオプションを使用する必要があります--publish
。
たとえば、
docker service create --detach=true --replicas 3 --publish 80:80 --name httpd httpd
これでポート80がプライマリネットワークに公開されます。役に立つのは、すべてSwarmのサーバーはポート80を公開し、コンテナが実際に実行されている場所に内部リダイレクトを実行します。
繰り返しますが、スタックを使用している場合は、このオプションを使用できますports
。たとえば、
services:
web:
image: httpd
ports:
- 80:80