Đăng nhập

Docker là gì? Hướng dẫn cho người mới bắt đầu

Tìm hiểu Docker là gì, cách hoạt động, cài đặt Docker Desktop, lệnh cơ bản, so sánh với VM, ví dụ Nginx, FAQ cho người mới.
Docker là gì? Hướng dẫn cho người mới bắt đầu

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.

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

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?

  • 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?


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.

Bài trước

WSL trên Windows: Cài đặt và dùng hiệu quả

Bài tiếp theo

Những lệnh Bash cơ bản cần phải biết (kèm ví dụ dễ hiểu)

Để lại bình luận của bạn

Email của bạn sẽ không được công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận bản tin

Đăng ký bản tin email để nhận những bài viết mới nhất trực tiếp trong hộp thư của bạn.
Cảm hứng mỗi ngày, nói không với spam ✨