web-dev-qa-db-ja.com

同じイメージに対して複数のインスタンスを作成するdocker-compose

同じイメージに対して複数のコンテナを起動する必要があります。以下に示すように作成ファイルを作成すると、正常に機能します。

version: '2'

services:
  app01:
    image: app
  app02:
    image: app
  app03:
    image: app
  app04:
    image: app
  app05:
    image: app  

複数回コピーして貼り付けるのではなく、作成のインスタンスの数を簡単に言及する方法はありますか?

51
KitKarson

更新された回答(2017年10月)

他の人が述べたように、Docker APIは変更されました。ほとんどの人がおそらく見ているだろうから、答えを更新している。

docker-compose up -d --scale app=5

残念ながら、現在、これをdocker-compose.ymlファイルで指定することはできません(バージョン3.5以降)。

詳細:
バージョン2.2および2.3のdocker-composeでscaleオプションを導入しましたが、バージョン3.0では削除しました。また、バージョン2.2または2.3を使用するには、古いバージョンのdocker-composeツールをダウンロードする必要があります。現在のバージョンは2.2または2.3をサポートしていません(ただし、2.0または2.1はサポートしています)。 replicas: 5を含む新しいdeployセクションもありますが、スウォームモード専用です。

---古い回答--------------------------------------

docker-compose scale app=5

https://docs.docker.com/compose/reference/scale/ を参照してください

次に、このdocker-composeファイルのみが必要です

version: '2'

services:
  app:
    image: app
61
Bernard

scaleコマンドは非推奨になりました。代わりにupを使用してください。

docker-compose up --scale app=2

詳細については https://docs.docker.com/compose/reference/up

25
fssilva

https://docs.docker.com/compose/compose-file/#replicas で説明されているように、replicaを使用して実行できます。

version: '3'
services:
  worker:
    image: dockersamples/examplevotingapp_worker
    networks:
      - frontend
      - backend
    deploy:
      mode: replicated
      replicas: 6
14
Esra