Docker là gì? Hiểu container trong 10 phút

  • author-image

    Nguyễn Đình Cường

  • blog-tag
  • blog-comment 0 comment
  • created-date 09 Nov, 2026
blog-thumbnail

Bạn từng nghe câu 'chạy trên máy tôi thì được mà' chưa? Docker ra đời để chấm dứt câu chuyện đó. Bài viết này giải thích Docker và container bằng ngôn ngữ đời thường, kèm vài lệnh bạn có thể thử ngay.

Vấn đề mà Docker giải quyết

Một ứng dụng web thường cần đúng phiên bản ngôn ngữ, thư viện, cơ sở dữ liệu và biến môi trường. Máy của bạn, máy đồng nghiệp và máy chủ thật thường lệch nhau ở một chi tiết nào đó, và lỗi sinh ra từ đây rất khó tìm.

Docker đóng gói ứng dụng cùng toàn bộ thứ nó cần vào một đơn vị gọi là container. Container chạy giống nhau ở mọi nơi có Docker, từ laptop đến máy chủ.

Container khác máy ảo thế nào?

Máy ảo (VM) giả lập cả một máy tính, kèm hệ điều hành riêng, nên nặng và khởi động chậm. Container dùng chung nhân (kernel) của hệ điều hành chủ nhưng được cô lập về tiến trình, mạng và hệ thống file. Vì vậy container nhẹ hơn nhiều và thường khởi động trong vài giây.

Tiêu chíMáy ảoContainer
Hệ điều hànhMỗi VM một OS riêngDùng chung kernel của máy chủ
Dung lượngThường nhiều GBThường vài chục đến vài trăm MB
Khởi độngChậm hơnRất nhanh
Mức cô lậpMạnh hơnĐủ dùng cho đa số ứng dụng

Ba khái niệm cần nhớ

  • Image: bản mẫu chỉ đọc, chứa mã nguồn, runtime và thư viện. Giống như bản cài đặt.
  • Container: một bản đang chạy được tạo ra từ image. Bạn có thể tạo nhiều container từ cùng một image.
  • Registry: nơi lưu và chia sẻ image, ví dụ Docker Hub.

Có thể hình dung image là công thức nấu ăn, còn container là món ăn đã nấu xong. Một công thức nấu được nhiều phần.

Thử ngay vài lệnh

Sau khi cài Docker Desktop (Windows, macOS) hoặc Docker Engine (Linux), hãy chạy:

docker --version
docker run hello-world
docker run -d -p 8080:80 --name web nginx
docker ps
docker logs web
docker stop web
docker rm web

Giải thích nhanh: lệnh thứ ba tải image nginx, chạy nền (-d) và ánh xạ cổng 8080 của máy bạn tới cổng 80 trong container. Mở trình duyệt vào http://localhost:8080 bạn sẽ thấy trang chào của Nginx. Lệnh docker ps liệt kê container đang chạy, còn docker logs xem nhật ký.

Vòng đời cơ bản của một image

  1. Viết một file tên Dockerfile mô tả cách dựng image.
  2. Chạy docker build để tạo image.
  3. Chạy docker run để tạo container từ image.
  4. Đẩy image lên registry bằng docker push để chia sẻ hoặc triển khai.

Docker không phải là thuốc tiên

Docker giúp môi trường nhất quán, nhưng không tự làm ứng dụng của bạn an toàn hay nhanh hơn. Dữ liệu trong container sẽ mất khi container bị xóa nếu bạn không dùng volume. Image lớn, chạy bằng quyền root hoặc chứa mật khẩu bên trong đều là những lỗi người mới hay mắc. Các bài tiếp theo trong chuyên mục sẽ đi sâu từng phần này.

Khi nào nên dùng Docker?

  • Dự án có nhiều người cùng làm, cần môi trường giống nhau.
  • Ứng dụng cần nhiều dịch vụ phụ như database, cache, hàng đợi.
  • Bạn muốn triển khai lên máy chủ lặp lại được, ít thao tác tay.
  • Bạn cần thử một công cụ mới mà không muốn cài lung tung vào máy.

Kết luận

Docker đóng gói ứng dụng thành container để chạy nhất quán ở mọi nơi. Hãy nắm vững ba khái niệm image, container, registry, thử vài lệnh cơ bản, rồi viết Dockerfile đầu tiên cho dự án của chính bạn. Chỉ cần một buổi tối thực hành là bạn đã thấy sự khác biệt.

Muốn học bài bản từ nền tảng đến triển khai thực tế, bạn có thể tham khảo các khóa DevOps tại codebem.com và thực hành theo từng bước.

author_photo
Nguyễn Đình Cường

0 comment