H2H2Docker là gì? Container là gì?
Docker là nền tảng mã nguồn mở cho phép xây, ship, chạy ứng dụng trong các container. Container là đơn vị phần mềm tiêu chuẩn, gói code + runtime + thư viện + config… để app chạy ổn định trên mọi máy.
Trang chủ Docker: https://www.docker.com/ (tải Docker Desktop)
Tài liệu chính thức: https://docs.docker.com/
Khác VM: VM ảo hóa cả hệ điều hành; container chia sẻ kernel của host nên nhẹ, nhanh, dùng ít tài nguyên hơn.
H2H2Vì sao nên dùng Docker?
Tính nhất quán: “máy dev”, staging, production đều giống nhau.
Tính di động: chạy trên Windows, macOS, Linux, on‑prem, cloud.
Mở rộng dễ: scale container lên xuống theo tải.
Hiệu quả tài nguyên: chia sẻ kernel, sử dụng CPU/RAM tối ưu.
Cô lập: mỗi container như một “sandbox” riêng, giảm xung đột phụ thuộc.
Tham khảo góc nhìn từ AWS về container và lợi ích: https://aws.amazon.com/containers/
H2H2Docker hoạt động như thế nào?
Docker Engine: gồm Docker Daemon, REST API và CLI để quản lý image, container, network, volume.
Docker Image: “bản thiết kế” bất biến tạo ra container.
Docker Container: instance đang chạy của image.
Docker Hub: kho lưu trữ image công khai.
Kéo image Nginx từ Docker Hub: https://hub.docker.com/_/nginx
docker pull nginx
H2H2Cài đặt Docker Desktop
Trang tải về: https://www.docker.com/
Sau khi cài xong, kiểm tra:
docker version
Test nhanh:
docker run hello-world
Tài liệu cài đặt chi tiết: https://docs.docker.com/get-started/
H2H2Lệnh Docker cơ bản
Liệt kê image đã tải:
docker image ls
Liệt kê container đang chạy:
docker ps
Chạy container nền (detached):
docker run -d --name my_nginx -p 8080:80 nginx
Dừng và xóa container:
docker stop my_nginx
docker rm my_nginx
Xóa image (khi không còn container nào dùng):
docker rmi nginx
Tài liệu lệnh: https://docs.docker.com/reference/
H2H2Ví dụ nhanh: chạy Nginx trong 10 giây
# 1) Kéo image (tự động nếu chưa có)
docker run -d --name my_nginx -p 8080:80 nginx
# 2) Mở trình duyệt: <http://localhost:8080>
# 3) Dừng và xóa khi xong
docker stop my_nginx && docker rm my_nginx
Image Nginx chính thức: https://hub.docker.com/_/nginx
H2H2So sánh Docker vs Máy ảo (VM)
Tiêu chí | Docker | Máy ảo (VM) |
---|---|---|
Kích thước | Nhẹ, MB đến vài GB | Nặng, vài đến hàng chục GB |
Tốc độ khởi động | Vài giây | Vài phút |
Tài nguyên | Chia sẻ kernel, tiết kiệm CPU/RAM | Ảo hóa toàn bộ OS, tốn tài nguyên |
Mức cô lập | Ứng dụng | Hệ điều hành |
Tính di động | Rất cao | Trung bình |
Tổng kết: Docker phù hợp cho app cần triển khai nhanh, scale linh hoạt. VM phù hợp khi cần cô lập toàn hệ điều hành.
H2H2Ứng dụng thực tế
Microservices: mỗi service là một container, dễ triển khai và cập nhật.
DevOps và CI/CD: build image trong pipeline, deploy nhất quán.
Data/ML: đóng gói môi trường khoa học dữ liệu để tái lập kết quả.
Cloud: triển khai với ECS, EKS, GKE… Ví dụ ECS: https://aws.amazon.com/ecs/
H2H2FAQ
Docker có miễn phí không?
Docker Desktop có gói miễn phí cho cá nhân và team nhỏ. Xem chi tiết tại https://www.docker.com/
Khác biệt container và image?
Image là “khuôn”; container là instance chạy từ image.
Docker có thay thế VM hoàn toàn?
Không phải mọi trường hợp. Docker tối ưu cho app; VM phù hợp khi cần full OS isolation.
Có cần WSL2 trên Windows không?
Khuyến nghị dùng WSL2 để chạy container Linux trên Windows mượt mà: https://docs.docker.com/desktop/wsl/
H2H2Kết luận
Docker giúp bạn đóng gói và chạy ứng dụng “chuẩn chỉnh” trên mọi môi trường, nhẹ và nhanh hơn VM. Cài Docker Desktop, thử hello-world
, rồi chạy Nginx để cảm nhận sự khác biệt.
Tải Docker Desktop: https://www.docker.com/
Bắt đầu học: https://docs.docker.com/
Image Nginx chính thức: https://hub.docker.com/_/nginx
Triển khai ECS: https://aws.amazon.com/ecs/