Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Container là gì?

    1. Container là gì?


    Container là một môi trường cô lập (isolated environment) nơi các ứng dụng được đóng gói và chạy. Bên trong container sẽ bao gồm:
    • Application (ứng dụng)
    • Dependencies (các thư viện, binary cần thiết để chạy)

    Nghe qua thì khá giống với Virtual Machine (VM), nhưng có một điểm quan trọng:

    👉 Container KHÔNG phải là “lightweight VM”
    Đây là một hiểu lầm rất phổ biến trong cộng đồng IT.
    2. So sánh kiến trúc: VM vs Container

    Virtual Machine (VM)


    VM hoạt động như một server ảo hoàn chỉnh:
    • Mỗi VM có:
      • Guest OS riêng (Linux, Windows…)
      • Libraries, binaries đầy đủ
      • Application
    • Chạy trên:
      • Hypervisor (Type 1 hoặc Type 2)
      • Hardware vật lý

    👉 Tức là mỗi VM giống như một máy chủ độc lập thu nhỏ

    Nhược điểm:
    • Nặng (vì có OS riêng)
    • Tốn tài nguyên (CPU, RAM, storage)
    • Startup chậm (thường vài phút)

    Container


    Container có cách tiếp cận hoàn toàn khác:
    • KHÔNG có Guest OS
    • Tất cả container:
      • Chia sẻ kernel của host OS
    • Mỗi container chỉ chứa:
      • Application
      • Dependencies cần thiết (bin/libs)

    👉 Container không ảo hóa cả server → chỉ trừu tượng hóa ứng dụng

    Ưu điểm:
    • Nhẹ (small footprint)
    • Khởi động nhanh (vài giây)
    • Scale cực nhanh (rất phù hợp cloud & microservices)

    3. Container Image – nền tảng của container


    Container không tự nhiên sinh ra, nó được tạo từ:

    👉 Container Image

    Container Image là một file chứa:
    • Application code
    • Thư viện (libraries)
    • Binary dependencies

    Khi chạy bằng container engine (ví dụ Docker), image → trở thành container. Điểm cực kỳ quan trọng:


    ✔ Image chứa tất cả những gì ứng dụng cần để chạy
    ✔ Không phụ thuộc môi trường bên ngoài

    👉 Điều này giải quyết triệt để vấn đề kinh điển:
    • “Chạy trên máy dev OK, lên production lỗi”
    • “Thiếu library”
    • “Version conflict”

    4. Tính portable – sức mạnh thực sự của container


    Vì container image đóng gói đầy đủ môi trường:

    👉 Bạn có thể chạy container ở bất kỳ đâu:
    • Laptop dev
    • Data Center
    • Cloud (AWS, Azure, GCP)
    • Kubernetes cluster

    💡 Ví dụ thực tế:

    Bạn build một container chạy Python app với:
    • Python 3.11
    • Flask
    • Specific library version

    → Đem container đó deploy sang server khác → vẫn chạy y chang
    → Không cần cài lại Python, không lo lệch version
    5. Khác biệt lớn về thời gian khởi động


    Đây là điểm cực kỳ quan trọng trong thực tế vận hành: VM:
    • Boot OS → Load services → Start application
    • ⏱ Mất: vài phút
    Container:
    • Dùng luôn kernel của host OS
    • Chỉ cần start process của app
    • ⏱ Mất: vài giây

    👉 Vì vậy:
    • Container rất phù hợp cho:
      • Auto scaling
      • Microservices
      • CI/CD pipeline

    6. Container Engine – “bộ não” vận hành container


    Để chạy container, cần có container engine.

    Phổ biến nhất:
    • Docker Engine (de facto standard)

    Ngoài ra còn có:
    • rkt (rocket)
    • Open Container Initiative (OCI)
    • LXD (Canonical)
    • Linux-VServer
    • Windows Containers

    7. Góc nhìn CCIE / Architect: Khi nào dùng VM, khi nào dùng Container?

    Dùng VM khi:
    • Cần full OS isolation
    • Chạy legacy applications
    • Yêu cầu bảo mật ở mức OS-level isolation mạnh
    Dùng Container khi:
    • Microservices architecture
    • DevOps / CI-CD
    • Cloud-native application
    • Scale nhanh, deploy nhanh

    8. Tóm lại (rất quan trọng)


    👉 VM = Virtualize entire server
    👉 Container = Abstract application

    👉 VM:
    • Nặng
    • Chậm
    • Isolation mạnh

    👉 Container:
    • Nhẹ
    • Nhanh
    • Portable

    9. Một cách hiểu cực dễ nhớ
    • VM = mỗi app một “máy tính riêng”
    • Container = nhiều app dùng chung “hệ điều hành”, nhưng vẫn cách ly


    Nếu bạn đang đi theo hướng:
    • Cloud
    • DevOps
    • Kubernetes
    • AI Infrastructure

    👉 Hiểu đúng container vs VM là nền tảng bắt buộc.
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X