Docker là gì? Những ý nghĩa của Docker

Blog Nghialagi.org giải đáp ý nghĩa Docker là gì

Chào mừng bạn đến blog Nghialagi.org chuyên hỏi đáp định nghĩa là gì, hôm nay chúng ta cùng tìm hiểu một khái niệm mới đó là Docker là gì? Những ý nghĩa của Docker. Docker là gì ? Kiến thức cơ bản về Docker. Docker là gì và làm gì?

Kết quả tìm kiếm Kết quả tìm kiếm trên web Docker là gì ? Kiến thức cơ bản về Docker - Nghialagi.org
Kết quả tìm kiếm Kết quả tìm kiếm trên web Docker là gì ? Kiến thức cơ bản về Docker – Nghialagi.org

Định nghĩa Docker là gì?

  • Docker là một nền tảng để cung cấp cách để building, deploying và running ứng dụng một cách dễ dàng trên nền tảng ảo hóa. Có nhiều công nghệ Container khác như Solaris Zones, BSD jails, và LXC. Nhưng tại sao Docker lại phát triển, phổ biến nhanh chóng? Đây là những nguyên nhân:
  • Ease of use: Docker rất dễ cho mọi người sử dụng từ developers, systems admins, architects…v…v.. nó tận dụng lợi thế của container để build, test nhanh chóng. Có thể đóng gói ứng dụng trên laptop của họ và chạy trên public cloud, private cloud..v.v… Câu thần chú là “Build once, run anywhere”.
  • Speed: Docker container rất nhẹ và nhanh, bạn có thể tạo và chạy docker container trong vài giây so sánh với VMs thì mỗi lần chạy VMs cần rất nhiều thời gian khởi động.
  • DockerHub: là một “app store for docker images”. trên DockerHub có hàng ngàn public images được tạo bởi cộng đồng. Dễ dàng tìm thấy những image mà bạn cần và chỉ cần pull về và sử dụng với một số sửa đổi nhỏ.
  • Modularity and Scalability: Bạn có thể chia nhỏ những chức năng của ứng dụng thành các container riêng lẻ. Ví dụng Database chạy trên một container và Redis cache có thể chạy trên một container khác trong khi ứng dụng Node.js lại chạy trên một cái khác nữa. Với Docker, rất dễ để liên kết các container với nhau để tạo thành một ứng dụng, làm cho nó dễ dàng scale, update các thành phần độc lập với nhau.

Các khái niệm liên quan

Để đi sâu hơn vào Docker chúng ta cần phải tìm hiểu những khái niệm liên quan đến nó. Nào cùng xem qua mô hình bên dưới

  • Images: hiểu nôm na là một khuôn mẫu để tạo một container. Thường thì image sẽ base trên 1 image khác với những tùy chỉnh thêm. ví dụ bạn build 1 image dựa trên image ubuntu để chạy Apache web service và ứng dụng của bạn và những tùy chỉnh, cấu hình để ứng dụng của bạn có thể chạy được. Bạn có thể tự build một image riêng cho mình hoặc sử dụng những image được publish từ cộng đồng Docker Hub. Một image sẽ được build dựa trên những chỉ dẫn của Dockerfile.
  • Containers: là một instance của một image. Bạn có thể create, start, stop, move or delete container dựa trên Docker API hoặc Docker CLI.
  • Registry (Docker Hub): là một kho chứa các image được publish bởi cộng đồng Docker. Nó giống như GitHub và bạn có thể tìm những image cần thiết và pull về sử dụng.
    Docker Client: là một công cụ giúp người dùng giao tiếp với Docker host.
  • Docker Daemon: lắng nghe các yêu cầu từ Docker Client để quản lý các đối tượng như Container, Image, Network và Volumes. Các Docker Daemon cũng giao tiếp với nhau để quản lý các Docker Service.
  • Dockerfile: là một tập tin bao gồm các chỉ dẫn để build một image .
  • Volumes: là phần dữ liệu được tạo ra khi container được khởi tạo.

Trên đây là những khái niệm cơ bản nhất về Docker. Ngoài ra còn nhiều khái niệm nữa như swarm, compose,.v.v.. thì mình sẽ có một bài viết chi tiết để nói về nó.

Khi nào thì sử dụng Docker

  • Docker là một công cụ đơn giản, như Git hay Java, mà cho phép bạn kết hợp chặt chẽ tới công việc phát triển hay điều hành hàng ngày của bạn.
  • Sử dụng Docker như là một phần mềm quản lý phiên bản (version control system) cho toàn hệ điều hành của bạn.
  • Sử dụng Docker khi bạn muốn đóng góp hay hợp tác hệ điều hành của bạn với một nhóm nào đó.
  • Sử dụng Docker để chạy những dòng code trên laptop của bạn trong môi trường giống hệt như trên server của bạn.
  • Sử dụng Docker khi app của bạn cần trải qua nhiều giai đoạn khác nhau của quá trình phát triển.

Hãy thử dùng và trải nghiệm docker. Mình sẽ liệt kê một số lệnh hay dùng trong Docker

So sánh Docker với Virtual machine

Điểm khác biệt chính là các containers sử dụng chung kernel với Host OS nên các thao tác bật, tắt rất nhẹ nhàng, nhanh chóng.

  • Ưu điểm : nhanh, nhẹ, có thể chia sẻ dễ dàng qua DockerHub
  • Nhược điểm : mới, cập nhật thay đổi thường xuyên

“Use Case” cho môi trường phát triển

Có thể sử dụng docker trong môi trường phát triển phần mềm như mô hình dưới :

Bước 1 : Lập trình viên sử dụng Docker trên máy local của mình, phát triển và đóng gói thành docker image, đẩy lên DockerHub

Bước 2 : SQA có thể tải về image trên môi trường test, bật container và thực hiện việc test các tính năng

Bước 3 : Nếu test thành công, có thể pull image và bật container trên môi trường production. Nếu việc test không thành công, SQA thông báo lại để lập trình viên kiểm tra lại (quay lại Bước 1)

Docker là gì?! Docker Image, Docker Container và Dockerfile - Nghialagi.org
Docker là gì?! Docker Image, Docker Container và Dockerfile – Nghialagi.org

Kết luận

Cảm ơn bạn đã đọc bài viết của blog nghialagi.org, hy vọng những thông tin giải đáp Docker là gì? Những ý nghĩa của Docker sẽ giúp ích bạn đọc.

Co-founder tại Blog Nghilagi.org Giải đáp thắc mắc bạn đọc. Tra thuật ngữ nhanh và chính xác nhất. Nghĩa Là Gì - Giải thích mọi câu hỏi kỳ quặc nhất Hãy cùng nhau chia sẻ những kiến thức bổ ích