docker-compose を使用して、サービスをスケーリングしながらcpuset
各インスタンスに異なるサービスを適用するにはどうすればよいですか?
例: 4 つの CPU があり、それぞれが 1 つの一意の CPU を使用する 4 つのインスタンスが必要です。
docker-compose を使用して、サービスをスケーリングしながらcpuset
各インスタンスに異なるサービスを適用するにはどうすればよいですか?
例: 4 つの CPU があり、それぞれが 1 つの一意の CPU を使用する 4 つのインスタンスが必要です。
どのバージョンの docker-compose を使用していますか? 以下に示すように、あなたが望むことを達成するには docker-compose v2.x または docker-swarm を使用する必要があるためです。
詳細については、docker doc を参照してください。
docker-compose 2.4 を使用していると仮定すると、次のようなサービスを `docker-compose.yaml で定義できます。
version: '2.4'
services:
redis:
image: redis:1.0.0
restart: always
environment:
- REDIS_PASSWORD=1234
cpu_count: 1
mem_limit: 200m
cpu_count
はサービスで使用する CPU コアの数であり、mem_limit
サービスが消費できるメモリの制限です。
実行する必要があるレプリカの数を定義するには:
docker-compose up --scale redis=2
はdocker redis
-compose のサービスの名前で、2
必要なレプリカの数です。したがって、2 つのコンテナーは両方とも、1 コアの CPU と 200m のメモリで起動します。
実行できるコンテナー リソースの消費量を確認するにはdocker stats
ソース: https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources
https://docs.docker.com/compose/compose-file/compose-file-v2/#cpu-and-other-resources