2016-09-23 28 views
17

Potrzebuję uruchomić wiele kontenerów dla tego samego obrazu. Jeśli utworzę mój plik compose, jak pokazano poniżej, działa dobrze.Tworzenie dokera Tworzenie wielu instancji dla tego samego obrazu

version: '2' 

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

Czy jest jakiś prosty sposób dla mnie wspomnieć liczbę wystąpień dla komponować zamiast kopiowania i wklejania kilka razy?

Odpowiedz

24

Updated odpowiedź (październik 2017)

Jak inni wspomniano, API doker uległ zmianie. Aktualizuję moją odpowiedź, ponieważ jest to ta, którą większość ludzi prawdopodobnie zobaczy.

docker-compose up --scale app=5

Niestety, nie możemy określić to w pliku Döcker-compose.yml obecnie (od wersji 3.5).

Szczegóły:
Wprowadzono opcję scale dla wersji 2.2 i 2.3 kompozycji doków, ale usunięto ją dla wersji 3.0. Ponadto, aby użyć wersji 2.2 lub 2.3, musisz pobrać starszą wersję narzędzia do tworzenia dokerów. Obecna wersja nie obsługuje wersji 2.2 ani 2.3 (obsługuje jednak wersję 2.0 lub 2.1). Dostępna jest również nowa sekcja deploy z replicas: 5, ale jest przeznaczona tylko dla trybu roju.

--- Stara odpowiedź --------------------------------------

docker-compose scale app=5

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

Następnie trzeba to Döcker-komponować plik

version: '2' 

services: 
    app: 
    image: app 
+0

Czy istnieje sposób, aby to określić w pliku Döcker-komponować tak, że po uruchomieniu 'docker-compose up', uruchomi wstępnie skonfigurowaną liczbę instancji? –

4

Można to zrobić z replica jak wspomniano w https://docs.docker.com/compose/compose-file/#replicas

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

Repliki są przeznaczone tylko do rozmieszczania w roju. –

+0

@KenJ ma to wpływ na funkcjonalność? –

+0

Tak, jeśli opcja jest ignorowana przez zwykłe komendy 'docker-compose up'. – giorgiosironi