1

docker-compose を使用して、サービスをスケーリングしながらcpuset各インスタンスに異なるサービスを適用するにはどうすればよいですか?

例: 4 つの CPU があり、それぞれが 1 つの一意の CPU を使用する 4 つのインスタンスが必要です。

4

1 に答える 1

0

どのバージョンの 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

于 2020-09-10T14:28:14.713 に答える