Giáo trình tự học miễn phí · Dịch vụ hỗ trợ theo nhu cầu.
Bài 0235phút ước tínhCơ bản đến Chuyên sâu
2. Viết Dockerfile Chuẩn Production & Tối Ưu Dung Lượng Bằng Multi-Stage Build
Nghệ thuật đóng gói ứng dụng: Tận dụng Layer Caching, chọn Base Image siêu nhẹ (Alpine / Slim) và giảm kích thước Image từ 1.5GB xuống 80MB.
🎯 4 Nguyên Tắc Vàng Khi Viết Dockerfile
- Dùng Image tối giản: Ưu tiên
python:3.11-slimhoặcnode:20-alpine. - Tận dụng Layer Cache: Copy file phụ thuộc (
package.jsonhoặcrequirements.txt) và cài đặt dependencies TRƯỚC KHI copy toàn bộ mã nguồn. - Không chạy dưới quyền Root: Luôn tạo User không đặc quyền (
USER appuser) để bảo vệ máy chủ. - Tạo file
.dockerignore: Loại bỏ thư mục.git,node_modules,__pycache__,.envkhỏi image.
# MULTI-STAGE DOCKERFILE CHO ỨNG DỤNG PYTHON FASTAPI / AI
# STAGE 1: Môi trường build dependencies
FROM python:3.11-slim as builder
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends gcc build-essential
COPY requirements.txt .
RUN pip install --no-cache-dir --user -r requirements.txt
# STAGE 2: Image chạy Production siêu nhẹ
FROM python:3.11-slim
WORKDIR /app
# Tạo user bảo mật không phải root
RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
# Copy thư viện từ Stage 1
COPY --from=builder /root/.local /home/appuser/.local
COPY . .
USER appuser
ENV PATH=/home/appuser/.local/bin:$PATH
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Thực hành
Thực hành và tự đánh giá
Đóng gói một ứng dụng Python hoặc Node.js bằng Multi-stage build và so sánh dung lượng Image tạo ra.
🏢 BẠN MUỐN TRIỂN KHAI CHO CẢ PHÒNG BAN / DOANH NGHIỆP?
Đề Xuất Công Ty Tài Trợ & Đào Tạo In-House Trọn Gói
AI Tinh Gọn hỗ trợ khảo sát hiện trạng, kèm 1-1 on-premise bảo mật dữ liệu, setup hạ tầng riêng và xuất hóa đơn VAT hợp pháp cho doanh nghiệp.
⚖️ Bản quyền sở hữu trí tuệ: © 2026 AI Tinh Gọn (aitinhgon.vn) · Giấy phép Creative Commons CC BY-NC-ND 4.0. Cho phép tự học cá nhân, nghiêm cấm thương mại hóa hoặc bán lại.
Giáo trình mở →
Tiến độ tự học lưu trên trình duyệt này. Chỉ đánh dấu khi đã kiểm tra sản phẩm thực hành.