(Docker P.1) Docker là gì? Tổng quan về Docker

3 min read

Vấn đề

  • Một vài năm trước đây, tôi hay vọc vạch cài cắm OS, khi Windows, khi thi Linux, khi thì Hackintosh. Nhưng mỗi lần như vậy, tôi phải cài lại môi trường develop từ đầu, nào là Postgres hay là MySQL, Redis, RabbitMQ, … và mất rất nhiều thời gian.
  • Trước đấy, tôi có nghe qua Docker, nhưng không biết nó là gì, và không biết nó giúp gì. Nhưng sau khi tìm hiểu, tôi thấy Docker giúp tôi giải quyết vấn đề trên một cách tuyệt vời. Bên cạnh đó, Docker còn rất nhiều thứ hay ho. Hãy cùng tìm hiểu qua bài viết này.

Docker là gì?

Tôi xin trích dẫn một đoạn tiếng Anh trên trang tài liệu của Docker:

Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code, you can significantly reduce the delay between writing code and running it in production.

Hiểu một cách đơn giản, Docker là một nền tảng mở cung cấp khả năng đóng gói ứng dụng, chuyển chúng qua các môi trường khác nhau và chạy chúng một cách độc lập.

Các ứng dụng chạy trong Docker gọi là container. Nó có thể là các nền tảng phổ biến như NodeJS, Python, Ruby, PHP, MySQL, Postgres, Redis, RabbitMQ, … hoặc là các ứng dụng của bạn. Tức là với Docker, bạn có thể dễ dàng chạy các ứng dụng mà không cần phải cài đặt các thứ khác.

Kiến trúc của Docker

Docker Architecture

Docker sử dụng kiến trúc client-server. Daemon (server) lắng nghe các request từ Docker client và thực thi chúng. Docker client và daemon có thể chạy trên cùng một máy hoặc trên các máy khác nhau. Chúng giao tiếp với nhau qua REST API, UNIX socket hoặc network interface.

Docker daemon quản lý các Images, Containers, Networks, … giúp chúng có thể hoạt động cùng nhau. Ngoài ra còn có Registries, nơi lưu trữ các Images. Docker Hub là một registry mặc định, nơi chứa hàng ngàn images sẵn sàng sử dụng.

Lợi ích của Docker

Tính di động: Docker container có thể chạy trên bất kỳ máy chủ nào hỗ trợ Docker. Điều này giúp chúng ta dễ dàng chuyển ứng dụng từ môi trường develop sang môi trường production.

Tính nhất quán: Docker container chứa tất cả những thứ cần thiết để chạy ứng dụng, từ code, runtime, thư viện, và các file cấu hình. Điều này giúp chúng ta đảm bảo ứng dụng chạy đúng cách trên mọi môi trường.

Tính linh hoạt: Docker giúp chúng ta dễ dàng mở rộng ứng dụng, thêm hoặc giảm số lượng container một cách dễ dàng.

Tính bảo mật: Docker container được cô lập với nhau, giúp giảm thiểu rủi ro khi triển khai ứng dụng lên production.

Tính hiệu quả: Docker giúp chúng ta tối ưu hóa tài nguyên máy chủ, giúp chúng ta chạy nhiều container trên cùng một máy chủ.

Tổng kết

Docker giúp chúng ta giải quyết nhiều vấn đề khi phát triển ứng dụng. Hiểu rõ về Docker giúp chúng ta tận dụng tối đa lợi ích mà nó mang lại. Ở bài viết tiếp theo, chúng ta sẽ tìm hiểu về các thành phần cơ bản của Docker cũng như cách sử dụng chúng. Hãy theo dõi nhé!

Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *