あなたはイージーとして使用するDocker Flow:Proxyに見ることができます構成するリバースプロキシ
しかし、他のコメンテーターが指摘しているように、Docker 1.12 swarmモードは、同じポート(80または8080など)を公開する複数のサービスに根本的な問題があります。 メッシュルーティングの魔法には、基本的にはTCP/IP、つまりIPアドレス+ポートを意味するレベル4の4つの魔法があります。 複数のサービスが(例えば)ポート8080にリストされていると、物事が乱雑になる。メッシュルーターは、ポート8080に向かうトラフィックを、同じポートを公開するあらゆるサービスに喜んで届けます。
swarmモードではオーバーレイネットワークを使用して物事を分離することができますが、サービスをプロキシ(オーバーレイネットワーク)に接続する必要があるときに問題が発生します - その時点では、私が今問題を抱えているところです)。
私が今解決した解決策は、プロキシフェーシング(オーバーレイ)ネットワークに関する限り、ネットに公開する必要があるサービスを一意にすることです。 swarm!)、実際にはDocker Flow Proxyのようなものを使って、目的のポートで着信トラフィックを処理します。あなたを得るために
クイックサンプルは、私は大体thisに基づいて(開始:
docker network create --driver overlay proxy
docker network create --driver overlay my-app
# App1 exposed port 8081
docker service create --network proxy --network my-app --name app1 myApp1DockerImage
docker service create --name proxy \
-p 80:80 \
-p 443:443 \
-p 8080:8080 \
--network proxy \
-e MODE=swarm \
vfarcic/docker-flow-proxy
#App2 exposes port 8080
docker service create --network proxy --network my-app --name app2 myApp2DockerImage
それはdocumentationだあたりとしてあなたはその後、リバースプロキシを設定
注:私は今、利用可能な新しいAUTO設定がある見ます - まだ試したことがありません。
最終結果:
どちらか
service domain
または
service path
に基づいて、適切なサービスに(それのconfig通話用と8080、そのパブリックネットのことをOFFキープ!)
- ポート80でリッスンプロキシ、443
- プロキシ転送し、(私は
service path
の問題を持っていました)
- サービスは、隔離されたオーバーレイネットワークを介して内部的に通信できます。
- サービスが付属同じオーバーレイ・ネットワーク上の同じさらさポートに関する問題についての上記のすべてのものを無視[EDITの2016年10月20日]
群れに不必要なポートを公開していません。代理人に。
私は穴のセットアップを破棄し、もう一度やり直しました。今はすべて期待どおりに動作しています。私は、ドッカーフロープロキシ経由で、異なるドメインを使用してポート80で複数の(異なる)サービスにアクセスできます。
また、自動設定を使用すると、すべてが魅力的なように機能しています。
質問に混乱します。同じポートに2つのものをマップすることができないという点に関して、ドッカー固有のものは何もありません。彼らはあなたのコンテナ内のポート80で実行されますが、それらを異なる外部ポートにマップします。 – johnharris85
@Jハリスはい私は主な質問を編集して外部ポートを指定します。しかし、APIサービス80のポートを外部ポート80にマップすると、サービスのために再度マップすることはできません。Web Interface – bitgandtter
正解、どのようにドッカーなしでこれを解決しますか? – johnharris85