Docker Swarmでドッカーを作成したい(私はドッカーのバージョン1.13を使用し、version: '3'
の構文で構成する)。 各サービスは他のサービスとの「単一の」サービスとして到達可能ですか?ここで明確にするために簡略化した例である:Docker Swarm Service Clustering
version: '3'
services:
nodejs:
image: mynodeapp
container_name: my_app
ports:
- "80:8080"
environment:
- REDIS_HOST=my_redis
- REDIS_PORT=6379
deploy:
mode: replicated
replicas: 3
networks:
- my_net
command: npm start
redis:
image: redis
container_name: my_redis
restart: always
expose:
- 6379
deploy:
mode: replicated
replicas: 2
networks:
- my_net
networks:
my_net:
external: true
のは、私が群れのように構成されている3台の仮想マシンを持っているとしましょう。つまり、各VMには1つのnodejsコンテナがありますが、2つのredisコンテナしかありません。
いいえ redisが実行されています。私のnodejsコンテナは、そのredisについて知っていますか?
Addiitonal質問: 私はRedisのためreplicas: 4
を設定すると、私は VM上 Redisのコンテナを持っています:これは私のnodejsのアプリのために問題になるのでしょうか?
最後の質問: 私は私のnodeappためreplicas: 4
を設定します。私は今、回ポート80を公開しているので、これも動作しますか?
3.ただし、**異なるノード**でレプリケートされたデータベースを使用している場合は、データベースのクラスタを構成する必要があります。 – Munchkin
@Munchkinこれで何を意味するのか分かりません。 Docker Swarmを使用すると、サービスのレプリカ数に関係なくデータを同期させることができます。また、ノード数が分散していても、その側面について心配する必要はありません。 –
明確にする:私は3回複製されました。最初の要求はredis#1に到着し、key1を更新します。次に、別の要求がredis#2に到着します。redis#2に新しい(更新された)キーがありますか? redis-cluster **を設定しなくても**(オプション 'cluster-enabled yes')? – Munchkin