web-dev-qa-db-fra.com

docker-compose la création de plusieurs instances pour la même image

Je dois démarrer plusieurs conteneurs pour la même image. Si je crée mon fichier de composition comme indiqué ci-dessous, cela fonctionne bien.

version: '2'

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

Existe-t-il un moyen simple pour moi de mentionner le nombre d'instances pour la composition au lieu de copier et coller plusieurs fois?

51
KitKarson

Réponse mise à jour (octobre 2017)

Comme d'autres l'ont mentionné, l'API du menu fixe a changé. Je mets à jour ma réponse car c'est celle que la plupart des gens vont probablement regarder.

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

Malheureusement, nous ne pouvons pas spécifier cela dans un fichier docker-compose.yml (à partir de la version 3.5).

Détails:
Ils ont introduit l'option scale pour les versions 2.2 et 2.3 de docker-compos mais l'ont supprimée pour la version 3.0. De plus, pour utiliser la version 2.2 ou 2.3, vous devez télécharger une version plus ancienne de l’outil docker-compose. La version actuelle ne supporte pas les versions 2.2 ou 2.3 (elle supporte toutefois 2.0 ou 2.1). Il y a aussi une nouvelle section deploy avec replicas: 5 mais elle ne concerne que le mode essaim.

--- Ancienne réponse ------------------------------------------

docker-compose scale app=5

Voir https://docs.docker.com/compose/reference/scale/

Ensuite, vous avez seulement besoin de ce fichier docker-compose

version: '2'

services:
  app:
    image: app
61
Bernard

La commande scale est maintenant obsolète. Vous devez plutôt utiliser up.

docker-compose up --scale app=2

plus de détails dans https://docs.docker.com/compose/reference/up

25
fssilva

Vous pouvez le faire avec replica comme indiqué dans https://docs.docker.com/compose/compose-file/#replicas

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