2つのノード、1つのマネージャー、1つのワーカーで設定されたswarmがあります。私はポートに刊行して、私のアプリケーションにアクセスできるようにしたいと思います。私はこれをどのように達成するのだろうかと思います。docker deployはswarmにポートを公開しません
version: '2'
services:
server:
build: .
image: my-hub.company.com/application/server:latest
ports:
- "80:80"
私がドッキングウィンドウ-構成し、それがうまく動作しますが、私はバンドルデプロイ
docker deploy my-service
を実行したときしかしこれは、ポートを公開しないので、それだけで言う実行したときにこれがポート80を公開ポートを指すのではなく、docker psの80/tcpこれは、ロードバランサを接続するかファンシーなコマンドを実行するか、別のレイヤーを追加して実際にこのホストを複数ホストのスートに公開する必要があるためです。
これをポートに公開するには、設定/実行する必要があることを誰かが理解できるようになりますか?
ベストケースのシナリオは、ポート80が公開されていることです。別のホスト名からアクセスすると、別のアプリケーションに送信されます。
更新: 私がHAプロキシを実行しているため、このリポジトリを見つけ
docker service update -p 80:80 my-service_server
docker kill <my-service_server id>
アプリケーションをデプロイした後、私は次のコマンドを実行した場合動作しているようですが、それは私がしかし、偉大なようで、ドッキングウィンドウ自身によってサポートされています新しいスウォームモードを使用してこのサービスを私のサービスに別々に適用することはできません。私は、コマンドを作成ドッカサービスを介してサービスをリンクする方法を見つけることができませんしかし
Internet -> HAProxy -> Service_A -> Container A
は、最適に今のようになります。
https://github.com/docker/dockercloud-haproxy
ネットワークがどのように見えるべきか記述する下での素敵な説明がありますネットワークを設定する方法です。このネットワークをサービスに適用すると、HAProxyでそのネットワークを選択します。
- Marcus
私のサービスでポートを公開ポートとして公開したくない場合(swarmの外に公開)、そのサービスを他のサービスで使用するために(swarm内に)内部に公開したい群れ。 –
それから、何もする必要はありません。これは、サービスがすべてデフォルトネットワーク上にあるか、またはすべてが同じネットワークに参加している限り、デフォルトの動作です。 – dnephin