Nội Dung Bài Viết
Không ít người bắt gặp thuật ngữ docker nhưng không thể hiểu nổi ý nghĩa của nó là gì. Trên thực tế, docker không phải là từ quá khó để hiểu ý nghĩa. Hãy cùng theo dõi bài viết dưới đây để biết thêm thông tin về thuật ngữ này nhé.
Docker là gì?
Docker được hiểu đơn giản là một nền tảng cung cấp cách để building, deploying và running các ứng dụng dễ dàng hơn thông qua việc dùng các containers (trên nền tảng ảo hóa).
Câu hỏi đặt ra là vậy các containers có nghĩa là gì?
Trên thực tế, các containers cho phép các lập trình viên có thể đóng gói một ứng dụng với tất cả các phần cần thiết và gói tất cả ra dưới dạng một package. Nhờ vào container, các ứng dụng sẽ chạy.
Nhìn nhận một cách khách quan thì docker khá giống với virtual machine. Tuy nhiên, docker lại phát triển và phổ biến cực kỳ nhanh chóng.
Lý do khiến docker phổ biến?
Những nguyên nhân khiến docker có thể phổ biến và phát triển nhanh chóng đến vậy:
Dễ ứng dụng:
Docker rất dễ để mọi người sử dụng. Nếu bạn là một lập trình viên hay một sysadmin, bạn cũng có thể tận dụng lợi thế của các container để build, test nhanh chóng. Và thậm chí là đóng gói ứng dụng trên laptop và chạy trên public cloud, private cloud…
Tốc độ:
Docker rất nhẹ và có tốc độ nhanh, bạn có thể tạo và chạy docker container với thời gian trong vài giây.
Có khả năng mở rộng:
Người dùng có thể chia nhỏ những chức năng của ứng dụng thành các container riêng lẻ. Chẳng hạn như duex liệu được 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. Việc dùng docker rất dễ để liên kết các container với nhau để tạo thành một ứng dụng, từ đó giúp nó dễ scale, update các thành phần độc lập với nhau.
Ngoài ra, việc sử dụng docker có thể giả lập hoàn toàn môi trường server dưới local một cách hoàn hảo. Bên cạnh đó, bạn có thể lưu trữ và chia sẻ cài đặt môi trường dự án với container của docker.
Các khái niệm liên quan đến docker
1/ Docker Engine: là thành phần chính của docker và nó giống như một công cụ dùng để đóng gói các ứng dụng.
2/ Docker Hub: được xem là github for docker images. Hiểu một cách đơn giản, ở trên docker hub sẽ có hàng ngàn bước ảnh được public và tạo bởi cộng đồng, việc sử dụng docker hub sẽ cho phép bạn dễ dàng tìm thấy những tấm hình mà mình mong muốn. Bạn chỉ cần pull về và sử dụng với một số config mà bạn mong muốn là được.
3/ Images: được xem là một khuôn mẫu để tạo một container.
Thông thường thì images sẽ dựa trên 1 hình ảnh có sẵn với những tùy chỉnh thêm. Chẳng hạn như bạn sẽ build 1 image dựa trên image Centos mẫu đã có sẵn để chạy Nginx và những tùy chỉnh cấu hình để ứng dụng web 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 chia sẻẽ từ cộng đồng Docker Hub. Một image sẽ được build sẽ dựa trên những chỉ dẫn của Dockerfile.
4/ Container: được hiểu đơn giản là một instance của 1 image. Bạn có thể create, start, stop, move or delete container dựa trên Docker API hoặc Docker CLI.
5/ Docker Client: được xem là một công cụ giúp người dùng có thể giao tiếp với Docker host.
6/ Docker Daemon: hiểu đơn giản là công cụ để lắng nghe các yêu cầu từ Docker Client để quản lý các đối tượng như Container, Image, Network hay Volumes thông qua REST API. Các Docker Daemon cũng sẽ giao tiếp với nhau để quản lý các Docker Service.
7/ Dockerfile: là một tập tin bao gồm các chỉ dẫn để build một image.
8/ Volumes: là phần dữ liệu được tạo ra khi container được khởi tạo.
Sẽ còn rất nhiều những khái niệm khác liên quan đến docker nữa, tuy nhiên, những khái niệm trên đây được đánh giá là phổ biến và cơ bản nhất khi tìm hiểu về docker.
Quy trình của một hệ thống sử dụng Docker
Một hệ thống docker sẽ được thực thi với 3 bước chính:
Bước 1: Build
Đầu tiên là tạo một dockerfile, tại đây chứa code. Dockerfile này sẽ được Build tại một máy tính đã được cài đặt Docker Engine. Sau khi build sẽ có được Container, trong Container này chứa ứng dụng kèm bộ thư viện.
Bước 2: Push
Sau khi có được Container, sẽ thực push Container này lên cloud và lưu tại đó.
Bước 3: Pull, Run
Trường hợp một máy tính khác muốn sử dụng container thì bạn bắt buộc phải thực hiện công việc Pull container này về máy. Dĩ nhiên máy được pull container về cũng phải cài Docker Engine. Sau đó thực hiện Run Container.
Bạn sẽ sử dụng Docker khi muốn triển khai kiến trúc Microservices hay muốn xây dựng một ứng dụng và cần scale chúng một cách linh hoạt. Ngoài ra, bạn cũng nên sử dụng docker nếu không muốn tiêu tốn quá nhiều thời gian để config máy local và server cùng một môi trường chạy được ứng dụng. Bạn chỉ cần build 1 lần chạy ở nhiều nơi là được. Nhiều công ty sử dụng docker khi các sản phẩm của họ cần có một cách tiếp cận mới về xây dựng, đẩy lên server, thực thi ứng dụng một cách nhanh chóng và dễ dàng.