2017-08-01 13 views
1

ec2のdockerコンテナとして実行しているアプリケーション、たとえばapiがあります。 このコンテナはec2ホスト(ポートマッピング)に依存しているため、同じマシンで複数のインスタンスを実行することはできません。1つのApp - >複数のDockerインスタンスを1つのEc2で実行

私はelbに直面している5つのホストがあり、これらのホストすべてで1つ以上のインスタンスを実行できる状態を達成したいと考えています。

私はECSを使用してこの状態を達成できることを知っています。

Ec2、ELB、Dockerでこれを行うことはできますか?

-Thanks

答えて

0

それを各ドッキングウィンドウコンテナ

docker run -d -p 81:80 yourimage 
docker run -d -p 82:80 yourimage 
docker run -d -p 83:80 yourimage 
docker run -d -p 84:80 yourimage 
docker run -d -p 85:80 yourimage 

ため

使用別のポートを行う。そして、あなたがポート80でnginxのロードバランサを置くことができ、複数の方法があります。 http://nginx.org/en/docs/http/load_balancing.htmlの詳細を参照

以下のような設定を使用する必要があります

http { 
    upstream myapp1 { 
     server 127.0.0.1:81; 
     server 127.0.0.1:82; 
     server 127.0.0.1:83; 
     server 127.0.0.1:84; 
     server 127.0.0.1:85; 
    } 

    server { 
     listen 80; 

     location/{ 
      proxy_pass http://myapp1; 
     } 
    } 
} 

使用単一ノードドッキングウィンドウの群れマネージャ

あなたは、セットアップコマンドの下に

docker swarm init 

を使用して、単一ノードのドッキングウィンドウの群れそして、そのマシン上で以下のコマンドを実行します

docker service create --name=myapp --replicase=5 -p 80:80 yourimage 
することができます

これにより、5つの負荷分散コンテナとパブが作成されますポート80でご利用ください。

どちらの場合もELBは必要ありません。そして、私はELBが同じホスト+マルチポートシナリオで動作するのではないかと疑います。

関連する問題