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ụ, web
và db
.
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_1
và 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
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
Nguồn
2016-02-23 18:40:51