2016-02-22 31 views
19

Stavo passando attraverso l'opzione volumes_from nella finestra mobile comporre. Apparentemente puoi importare un volume da un contenitore o un servizio. Dalla documentazione composizione finestra mobile è:Compone tra servizio e contenitore nella finestra mobile comporre

volumes_from

monte tutti i volumi da un altro servizio o contenitore, opzionalmente specificando accesso in sola lettura (ro) o lettura-scrittura (RW).

volumes_from: 
- service_name 
- service_name:ro 
- container:container_name 
- container:container_name:rw 

Nota: Il contenitore: ... formati sono supportati solo nel formato di file versione 2 . Nella versione 1, è possibile utilizzare i nomi di container senza marcatura come tali:

- service_name 
- service_name:ro 
- container_name 
- container_name:rw 

sono confuso qui qual è la differenza tra i contenitori e servizi qui?

risposta

40

I servizi e il contenitore sono correlati ma entrambi sono cose diverse.

Un servizio può essere eseguito da uno o più contenitori. Con docker è possibile gestire i contenitori e con docker-compose è possibile gestire i servizi.

Ad esempio:

Diciamo che abbiamo questa docker-compose.yml di file:

web: 
    image: example/my_web_app:latest 
    expose: 
    - 80 
    links: 
    - db 

db: 
    image: postgres:latest 

Questo file composizione definisce due servizi, web e db.

Quando si esegue docker-compose up, Asuming che la directory del progetto è test1 quindi comporre inizierà 2 contenitori di nome myapp_db_1 e myapp_web_1.

$ docker ps -a 
CONTAINER ID IMAGE  COMMAND   ...  NAMES 
1c1683e871dc test1_web "nginx -g"  ...  test1_web_1 
a41360558f96 test1_db  "postgres -d" ...  test1_db_1 

Quindi, in questo punto si dispone di 2 servizi e 1 contenitore per ciascuno.

Ma è possibile ridimensionare il servizio denominato web per utilizzare 5 contenitori.

$ docker-compose scale web=5 
Creating and starting 2 ... done 
Creating and starting 3 ... done 
Creating and starting 4 ... done 
Creating and starting 5 ... done 

In questo punto si hanno 2 servizi e 6 contenitori

$ docker ps -a 
CONTAINER ID IMAGE  COMMAND   ...  NAMES 
1bf4c939263f test1_web "nginx -g"  ...  test1_web_3 
d3033964a44b test1_web "nginx -g"  ...  test1_web_4 
649bbda4d0b0 test1_web "nginx -g"  ...  test1_web_5 
a265ea406727 test1_web "nginx -g"  ...  test1_web_2 
1c1683e871dc test1_web "nginx -g"  ...  test1_web_1 
a41360558f96 test1_db  "postgres -d' ...  test1_db_1 

Inoltre, con finestra mobile-comporre è possibile eseguire sottocomando contro uno o più servizi.

$docker-compose stop web 
2

non posso rispondere completamente alla tua domanda in quanto io non capisco servizi stessi. Tuttavia, comprendo volumi_from in relazione ai contenitori e quindi questo risponderà alla metà della tua domanda :) Una risposta parziale è meglio di nessuna?

CONTENITORE A

volumes: /my/shared/directory 
container_name:ca 

CONTENITORE B

volumes_from:ca 

Ora contenitore B avrà una nuova directory in esso/mio/shared/directory che è montato dal contenitore A - il contenuto della directory nel contenitore B sarà esattamente uguale al contenuto della directory nel contenitore A

se si scopre di servizi plz fammi sapere

Problemi correlati