2016-02-22 23 views
19

Tôi đã trải qua tùy chọn volumes_from trong trình tạo docker. Rõ ràng bạn có thể nhập một tập từ một thùng chứa hoặc một dịch vụ. Từ các tài liệu soạn Docker nó là:Sự khác biệt giữa dịch vụ và vùng chứa trong docker soạn

volumes_from

Núi tất cả các khối lượng từ một dịch vụ hoặc container, tùy quy định cụ thể truy cập chỉ đọc (ro) hoặc đọc-ghi (rw).

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

Lưu ý: Định dạng tệp: ... chỉ được hỗ trợ ở định dạng tệp 2 . Trong phiên bản 1, bạn có thể sử dụng tên vùng chứa mà không đánh dấu đối tượng này như:

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

Tôi đang bối rối ở đây là sự khác biệt giữa container và các dịch vụ ở đây là gì?

Trả lời

40

Dịch vụ và thùng chứa có liên quan nhưng cả hai đều là những thứ khác nhau.

Dịch vụ có thể được điều hành bởi một hoặc nhiều vùng chứa. Với docker bạn có thể xử lý các vùng chứa và với docker-compose bạn có thể xử lý các dịch vụ.

Ví dụ:

Hãy nói rằng chúng tôi có docker-compose.yml tập tin này:

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

db: 
    image: postgres:latest 

tập tin soạn này định nghĩa hai dịch vụ, webdb.

Khi bạn chạy docker-compose up, Giả sử thư mục dự án là test1 thì việc soạn sẽ bắt đầu 2 vùng chứa có tên myapp_db_1myapp_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 

Vì vậy, tại thời điểm này, bạn có 2 dịch vụ và 1 vùng chứa cho mỗi loại.

Nhưng bạn có thể mở rộng dịch vụ có tên web để sử dụng 5 vùng chứa.

$ 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 

Trong thời điểm này bạn có 2 dịch vụ và 6 container

$ 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 

Bên cạnh đó, với Docker-soạn bạn có thể chạy subcommand đối với một hoặc nhiều dịch vụ.

$docker-compose stop web 
2

tôi không thể trả lời đầy đủ câu hỏi của bạn vì tôi không hiểu về bản thân dịch vụ. Tuy nhiên, tôi hiểu khối lượng_from liên quan đến container và do đó, điều này sẽ trả lời một nửa câu hỏi của bạn :) Câu trả lời một phần là tốt hơn không?

CONTAINER Một

volumes: /my/shared/directory 
container_name:ca 

CONTAINER B

volumes_from:ca 

Bây giờ chứa B sẽ có một thư mục mới trong đó/my/chia sẻ/thư mục được gắn từ thùng A - nội dung của thư mục trong vùng B sẽ chính xác giống như nội dung của thư mục trong vùng chứa A

nếu bạn khám phá về dịch vụ plz hãy cho tôi biết

Các vấn đề liên quan