Docker là gì? Tại sao hữu ích trong development và deployment?

Docker đóng gói app + dependencies vào container để chạy nhất quán ở mọi môi trường — containers nhẹ hơn VMs vì share host OS kernel; docker-compose thiết yếu cho local dev stack.

  • Docker tạo isolated containers chứa app và dependencies.
  • Containers vs VMs: VMs virtualize hardware (heavyweight, có OS riêng, boot minutes); containers share host OS kernel (lightweight, start milliseconds, MB vs GB).
  • Layered filesystem (Union FS): Docker image là stack of read-only layers, container thêm writable layer trên cùng — layers được cache và shared giữa images, kéo image nhanh khi layers đã có.
  • Copy-on-write: khi container modify file từ image layer, Docker copy file lên writable layer trước khi modify.
  • Networking: Bridge network (default, containers communicate qua virtual network); Host network (container dùng host network stack trực tiếp, performance tốt hơn); Overlay network (multi-host, dùng trong Docker Swarm/K8s).
  • Volumes: bind mounts (link host directory vào container cho dev mode); named volumes (Docker-managed storage, persist data cho database); tmpfs mounts (in-memory, không persist). docker-compose: define multi-container apps với YAML — services, networks, volumes; docker-compose up để start toàn bộ stack; essential cho local development với database + app + cache.
  • Production: Docker + Kubernetes (K8s) cho orchestration, auto-scaling, self-healing; Docker + ECS/Cloud Run cho managed container services.

Xem toàn bộ Docker & Kubernetes cùng filter theo level & chủ đề con.

Mở danh sách Docker & Kubernetes