Ngày 06 trên 12
Đóng hộp, dựng cổng
Cùng một build trên mọi máy, đứng sau một cánh cửa thật
Bạn có thể… vào cuối ngày
- Giải thích image và container, lớp (layer), và registry.
- Viết một Dockerfile và docker-compose.yml cho stack của bạn.
- Giữ dữ liệu SQLite trên một volume để nó sống qua mỗi lần khởi động lại.
- Cấu hình nginx vừa là web server vừa là reverse proxy, và kết thúc TLS.
Sản phẩm
Một stack chạy trong Docker, đứng sau nginx — một file compose dựng lên tất cả.
Móc nối toàn cảnh
Ô “APP” giờ là một container, và nginx là cánh cửa chính. Nhưng cánh cửa này chưa có tên — đó là chuyện ngày mai.
Khái niệm bạn sẽ hiểu gì
- Container: gói code + đúng dependencies + config vào một image bất biến; chạy nó thành container. Tái lập, cách ly, mang đi được.
- Dockerfile:
FROM,WORKDIR,COPY,RUN,EXPOSE,CMD— build một lần, chạy khắp nơi. - Volume: file SQLite phải nằm trên volume, nếu không tạo lại là mất. Quên điều này = mất dữ liệu.
- Docker Compose: khai báo service, port, volume —
docker compose up -d/down. - nginx, cánh cửa chính: cấu trúc config, server block (virtual host),
root/index/location/try_files, vòng lặp an toànnginx -t→reload. - Reverse proxy + TLS:
location /api/ { proxy_pass … }, app ẩn ở localhost, và kết thúc HTTPS ở cửa.
Thực hành thực chiến, kết bằng thứ đang chạy
- Container hóa: viết Dockerfile cho app Flask và một compose file có volume cho DB.
- Chứng minh tái lập:
docker compose down, rồiup -d— hành vi như cũ, dữ liệu còn nguyên. - nginx static vhost: serve frontend của bạn cho một host,
nginx -t, reload. - Reverse proxy: trỏ
location /api/vào app ở localhost; test luồng đầy đủ.
Muốn định dạng khác? Mọi định dạng