Docker giải quyết vấn đề môi trường chạy không nhất quán giữa local, CI và production bằng cách đóng gói ứng dụng cùng runtime, dependencies và cấu hình vào container image. Nhờ đó, một image chạy đúng trên máy bạn thì cũng chạy đúng trên server, giảm lỗi kiểu “chạy được trên máy tôi”.
Cơ chế hoạt động: Docker dùng container, không phải VM. Container chia sẻ kernel với host, chỉ cách ly ở tầng process, filesystem, network và resource. Vì không cần khởi động OS riêng, container khởi động nhanh hơn VM và nhẹ hơn về tài nguyên. Image được xây dựng từ nhiều layer, mỗi layer là một thay đổi trong filesystem; Docker cache các layer này để build nhanh hơn khi chỉ thay đổi phần cuối.
Ví dụ: bạn viết Dockerfile cho app Node.js, build thành image, rồi dùng image đó chạy ở local, CI và production. Nếu dependencies và runtime đã nằm trong image, máy chạy không cần cài Node.js riêng.
Edge case: container không cách ly kernel, nên nếu host bị lỗi kernel thì mọi container trên host đều ảnh hưởng. Image cũng có thể chứa secret nếu bạn copy file .env vào image; nên dùng secret management khi chạy production. Ngoài ra, container không phải “VM nhẹ” — nó không có OS riêng, nên không thể chạy kernel khác với host.
Lưu ý: Docker giúp chuẩn hoá môi trường, nhưng bạn vẫn phải quản lý image size, security, network, storage và lifecycle. Container chia sẻ kernel host, nên không thay thế hoàn toàn VM khi cần cách ly mạnh về bảo mật.