
Container hoá và Quản lý Ứng dụng (Containerization Fundamentals)
Container hoá là công nghệ cốt lõi trong DevOps hiện đại. Khóa học này giúp học viên hiểu rõ cách container hoạt động, cách đóng gói ứng dụng, xây dựng image, cấu hình network, lưu trữ, bảo mật, tối ưu hóa kích thước image, và quản lý ứng dụng container hóa trong môi trường thực tế. Đây là bước đệm quan trọng để đi sâu vào Kubernetes, Cloud Container Service hoặc CI/CD production.
Thời lượng: 18h

Bạn đạt được gì sau khi hoàn thành khóa học

Hiểu rõ cơ chế hoạt động của Container và sự khác biệt với Máy ảo (VM)
Bạn sẽ giải thích được tại sao container khởi động nhanh, tiêu thụ ít tài nguyên hơn và là lựa chọn hàng đầu để xây dựng các kiến trúc ứng dụng hiện đại.
Viết được Dockerfile tối ưu để đóng gói bất kỳ ứng dụng nào
Nắm vững các chỉ thị từ FROM, RUN, COPY đến các kỹ thuật nâng cao như Multi-stage build để tạo ra các image nhỏ gọn, bảo mật và hiệu quả.

Thành thạo các lệnh Docker CLI để quản lý vòng đời của container
- Tự tin thực hiện các tác vụ hàng ngày như chạy (run), kiểm tra (ps, logs, stats), gỡ lỗi (exec), và dọn dẹp (rm) container một cách chuyên nghiệp.

Quản lý dữ liệu bền bỉ và kết nối mạng cho ứng dụng
Sử dụng Volumes để đảm bảo dữ liệu không bị mất khi container bị xóa và cấu hình custom networks để các container trong ứng dụng có thể giao tiếp an toàn với nhau.

Sử dụng Docker Compose để điều phối các ứng dụng đa container
Định nghĩa và khởi chạy toàn bộ môi trường ứng dụng (ví dụ: Web + Database + Cache) chỉ bằng một file docker-compose.yml và một câu lệnh duy nhất.
Quản lý và chia sẻ image thông qua các kho chứa (Registry)
Học cách đẩy các image bạn đã xây dựng lên Docker Hub hoặc các private registry khác, sẵn sàng cho việc tích hợp vào CI/CD pipeline hoặc triển khai trên các hệ thống lớn hơn.

Đối tượng tham gia

Kỹ sư DevOps và Cloud cần một phương pháp đóng gói và triển khai ứng dụng nhất quán trên mọi môi trường, từ máy cá nhân đến production.

Lập trình viên (Backend, Full-stack) muốn tự đóng gói sản phẩm của mình, giải quyết triệt để vấn đề “It works on my machine” và đảm bảo môi trường đồng nhất.

Quản trị viên hệ thống (System Administrator) đang chuyển dịch sang quản lý hạ tầng hiện đại, linh hoạt và có khả năng mở rộng cao hơn so với máy ảo truyền thống.

Kiến trúc sư giải pháp (Solutions Architect) cần hiểu rõ về container để thiết kế các hệ thống microservices có tính di động, dễ dàng triển khai và nâng cấp.

Yêu cầu tiên quyết
- Biết sử dụng Linux, Git, Python hoặc Bash cơ bản
- Biết cơ bản về CI/CD, cấu trúc ứng dụng web/backend
- Biết mô hình client-server và port/network cơ bản
Nội dung khóa học
1. Tổng quan về container
- Container là gì? So sánh VM vs Container
- Lịch sử: từ chroot → cgroups → Docker
- Tại sao container hóa lại là xu hướng?
- Các engine: Docker, containerd, Podman, LXC
- Cơ chế cách ly: Namespace, Cgroup
2. Cài đặt và làm việc với Docker
- Cài Docker trên Linux, Windows
- Kiến trúc Docker: Docker daemon, CLI, registry
- docker run, docker ps, docker stop, docker rm
- Pull image từ Docker Hub
- Chạy container foreground & background (-d)
- Expose port: -p, -P, hiểu rõ NAT mapping
3. Docker Image: Build & Customize
- Image là gì? Layer và caching cơ chế build
- Viết Dockerfile:
- FROM, RUN, COPY, CMD, ENTRYPOINT, WORKDIR, ENV
- Healthcheck, Label, ARG vs ENV
- Multi-stage build: giảm kích thước image
- docker build, docker history, docker image inspect
- Tối ưu Dockerfile: cache layer, không để file rác
- Đẩy image lên Docker Hub: docker tag, docker push
4. Quản lý container nâng cao
- Quản lý log: docker logs, redirect stdout/stderr
- Exec & debug: docker exec -it, docker attach
- Kiểm tra tài nguyên: docker stats, limit CPU/memory
- Restart policy: always, on-failure, unless-stopped
- Quản lý biến môi trường: –env, .env file
5. Mạng, Volume và Bảo mật
- Mạng:
- Các chế độ: bridge, host, none
- Tạo custom network, container giao tiếp với nhau
- DNS trong container, alias, name resolution
- Volume:
- Tạo volume, bind mount, anonymous volume
- Dữ liệu persistent giữa các container
- Backup volume bằng tar, mount volume chia sẻ
- Bảo mật:
- User trong container (USER trong Dockerfile)
- Giới hạn quyền: read-only, –cap-drop, –security-opt
- Scan image với docker scan hoặc Trivy (giới thiệu)
6. Docker Compose & Ứng dụng thực tế
- Lý do cần Compose: multi-container app
- Cấu trúc file docker-compose.yml
- services, volumes, networks, build context
- env_file, depends_on, restart policy
- Chạy app với nhiều container: Web + DB + Cache
- Debug dịch vụ với logs, exec, ps
- Triển khai ứng dụng Python Flask hoặc Node.js
- Liên hệ CI/CD: dùng container trong Jenkins runner, GitHub Actions
6. Bài thực hành tổng hợP
Mini Project: Triển khai ứng dụng container hóa
Mục tiêu:
- Container hóa ứng dụng web/backend + database
- Quản lý bằng Docker Compose
- Đóng gói thành image tối ưu và đẩy lên registry
Yêu cầu:
- Clone project Python Flask hoặc Node.js đơn giản (REST API)
- Viết Dockerfile chuẩn cho ứng dụng
- Tạo docker-compose.yml:
- App + PostgreSQL hoặc Redis
- Cấu hình env, volume cho database
- Đăng ký Docker Hub và push image
- Mở cổng public, kiểm tra API bên ngoài
- Bonus: viết shell script tự động deploy từ Git clone → build → run

Bài viết liên quan
