Bạn có chắc chắn muốn xóa bài viết này không ?
Bạn có chắc chắn muốn xóa bình luận này không ?
Hành trình cùng cá voi xanh - Áp dụng docker-compose
TIếp tục bài viết http://kipalog.com/posts/Hanh-trinh-cung-ca-voi-xanh---Dockerize-app Mình sẽ thử áp dụng docker compose cho app này. Bằng cách sử dụng docker compose tất cả tham số cần thiết khi truyền vào docker run, thứ tự chạy các image, tạo network gì... sẽ được đưa vào kịch bản hết. Kịch bản đó có dạng một file yml.
Đây là file docker-compose.yml của mình
version: '2'
services:
web:
image: nginx
hostname: web.simple.flask
domainname: example.com
ports:
- "80:80"
volumes:
- ./web/nginx/simple_flask.conf:/etc/nginx/conf.d/simple_flask.conf
depends_on:
- app
networks:
- my-net
app:
build: ./code
hostname: app.simple.flask
domainname: example.com
networks:
- my-net
networks:
my-net:
Toàn bộ qúa trình tạo network, build image, chạy các image theo thứ tự, các tham số cần thiết cho mỗi docker run đều nằm trong file yml trên.
Ở đây networks là my-net
Có hai service, tương ứng hai container. Cả hai service đều dùng chung network my-net.
Tên container được lấy theo tên thư mục chứa file docker-compose.yml và tên service khai báo trong docker-compose.yml. Mình đặt trong thư mục simple_flask nên các container sẽ có tên là simpleflask_web_1 và simpleflask_app_1 Để web tham chiếu được app, mình đã phải sửa upstream nginx trong web/nginx/simple_flask.conf
Không nên dùng container_name trong kịch bản docker compose vì đó là fixed name. Bạn không thể dùng docker compose để scale out app do conflict container name.
hostname và domainname dùng để set hostname cho mỗi container và set /etc/hosts cho mỗi container. Ví dụ container có tên là simpleflask_web_1 sẽ có /etc/hosts được bổ sung
172.22.0.2 web.simple.flask web.simple.flask.example.com
Bạn chỉ cần cài docker compose. Hiện tại là bản 1.8.0. Sau đó, chạy docker-compose up
là xong. Nhờ sử dụng docker, toàn bộ môi trường được đóng gói cùng app nên việc chạy app chưa bao giờ đơn giản hơn thế.
Tham khảo:
https://gitlab.com/cuongtran/docker-counter/tree/develop
https://github.com/docker/example-voting-app
manhdung 29-07-2016







