2016-02-22 12 views
19

Przechodziłem przez opcję volumes_from w oknie dokowania. Najwyraźniej możesz zaimportować woluminy z kontenera lub usługi. Z dokumentacji redagowania Döcker to:Różnica między usługą a kontenerem w oknie dokowanym:

volumes_from

Góra wszystkich tomów z inną usługą lub pojemnika, opcjonalnie przypisu wskazującego dostęp tylko do odczytu (ro) lub odczytu i zapisu (RW).

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

UWAGA: Pojemnik: ... formaty są obsługiwane tylko w formacie wersja 2 . W wersji 1, można używać nazw kontenerów bez oznakowania je jako takie:

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

Jestem mylić tutaj jaka jest różnica między pojemnikami i usług tutaj?

Odpowiedz

40

Usługi i kontener są ze sobą powiązane, ale obie są różne.

Usługa może być obsługiwana przez jeden lub wiele kontenerów. Dzięki docker możesz obsługiwać kontenery, a dzięki docker-compose możesz obsługiwać usługi.

Na przykład:

Załóżmy, że mamy ten docker-compose.yml plik:

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

db: 
    image: postgres:latest 

Plik ten definiuje dwa komponować usług web i db.

Po uruchomieniu docker-compose up, Asuming że katalog projekt jest test1 następnie skomponować rozpocznie 2 pojemniki o nazwie myapp_db_1 i 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 

W tym miejscu masz 2 usługi i 1 pojemnik na każdą.

Ale można skalować usługę o nazwie web, aby użyć 5 kontenerów.

$ 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 

W tym momencie masz 2 usług i 6 pojemników

$ 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 

Dodatkowo z docker-komponować można uruchomić komendy przeciwko jednemu lub większej liczby usług.

$docker-compose stop web 
2

Nie mogę w pełni odpowiedzieć na twoje pytanie, ponieważ sam nie rozumiem usług. Jednak rozumiem tomy_względem w odniesieniu do kontenerów, więc to odpowie na połowę twojego pytania :) Częściowa odpowiedź jest lepsza niż żadna?

pojemniku

volumes: /my/shared/directory 
container_name:ca 

pojemnik B.

volumes_from:ca 

Teraz pojemnik B będzie mieć nowy katalog w nim/my/Shared/katalog, który jest zamontowany z pojemnika A - zawartość katalogu w kontenerze B będzie dokładnie taka sama, jak zawartość katalogu w kontenerze A

jeśli odkryjesz o usługach plz daj mi znać

Powiązane problemy