Docker là gì? Tổng quan và hướng dẫn cách dùng docker?

1. Tổng quan về Docker

tổng quan về docker

1.1 Khái niệm: 

Một cách tổng quan nhất, Docker là một nền tảng ảo đem đến những cách thức để triển khai và chạy các ứng dụng một cách thuận tiện hơn thông qua các nền tảng ảo hóa hay còn gọi là các container – các đơn vị tiêu chuẩn hóa để đóng gói phần mềm. Thông qua Docker, người dùng có khả năng triển khai một cách nhanh chóng đồng thời điều chỉnh quy mô ứng dụng tùy môi trường miễn là mã của họ chạy được.

Quá trình chạy Docker trên AWS mang lại cho các nhà phát triển ứng dụng và quản trị viên một cách thức xây dựng, vận chuyển và chạy các chương trình ứng dụng phân phối ở nhiều quy mô với chi phí rẻ nhưng vẫn đảm bảo độ tin cậy.

1.2 Cấu trúc của Docker:

Docker được thiết kế dưới mô hình kiến trúc client-server. Docker server (Dọcker daemon) có vai trò triển khai, chạy và phân bổ các Docker container. Docker client và Docker server có thể được phân bổ cùng server hoặc khác server. Chúng kết nối thông qua nền tảng REST API dựa trên UNIX sockets hoặc network interface.

tổng quan về docker

  • Docker daemon đóng vai trò là thành phần core, theo dõi và nghe API request và quản lý các Docker object. Docker daemon ở các host khác nhau vẫn có khả năng giao tiếp và kết nối với nhau.
  • Docker client là công cụ chính để người dùng thực hiện các thao tác trên nền tảng Docker. Khi người dùng thông qua CLI gõ câu lệnh “Docker run imageABC” để gửi yêu cầu đến dockerd nhờ API, Docker daemon sẽ tiếp nhận và xử lí yêu cầu. Docker client có khả năng kết nối, giao tiếp và truyền tải yêu cầu đến nhiều Docker daemon.
  • Docker registry hiểu theo nghĩa đơn giản là kho lưu trữ các Image. Điển hình là Docker Hub, mặt khác người dùng có thể tự thiết lập một Docker registry của riêng mình.

1.3 Một số ưu điểm khi sử dụng Docker:

  • Dễ sử dụng: cách sử dụng Docker khá đơn giản, phù hợp với nhiều đối tượng như lập trình viên, sys admin… Docker khai thác lợi thế của container để triển khai và kiểm tra nhanh chóng. Docker hỗ trợ đóng gói ứng dụng trên laptop và chạy chương trình trên public cloud, private cloud… Câu lệnh là “Build once, run anywhere”.
  • Tốc độ: Docker container có ưu điểm là nhẹ và nhanh, cho phép người dùng thiết lập và chạy docker container với tốc độ tính bằng giây.
  • Môi trường chạy và khả năng mở rộng: người dùng có thể phân nhỏ các chức năng trên ứng dụng thành các container riêng lẻ. Với Docker đem đến khả năng liên kết các container với nhau tạo lập thành 1 ứng dụng, thuận tiện hơn khi thực hiện thao tác scale, cập nhật các thành phần riêng biêt.   

2. Nguyên tắc sử dụng và cách thức hoạt động

2.1 Nguyên tắc hoạt động

– Cơ chế hoạt động của Docker không đơn giản như cách sử dụng mà có phức tạp hơn. Docker hoạt động trên sự kết hợp giữa 1 Docker engine với 2 yếu tố: 

  • 1 server và 1 client.
  • Giao tiếp giữa server và client nhờ REST API.

– Docker hoạt động thông qua việc cung cấp những phương thức tiêu chuẩn để chạy mã của người dùng. Theo đó, các container thực hiện thao tác ảo hóa hệ điều hành phía máy chủ. Docker được thiết lập trên từng máy chủ và được hỗ trợ các câu lệnh đơn giản có nhiệm vụ triển khai, khởi động hoặc tạm dừng Container. Một số dịch vụ AWS như AWS Fargate, Amazon ECS, Amazon EKS và AWS Batch hỗ trợ người dùng chạy các container Docker ở quy mô lớn một cách thuận tiện và nhanh chóng hơn.

2.2 Quy trình hoạt động

Docker hoạt động dựa trên thứ tự 3 bước: BuildPushPull, Run

tổng quan về docker

  • Build: đầu tiên truy cập Docker và tạo lập một dockerfile, trong đó chứa code của người dùng. Dockerfile này sẽ được thiết lập trên thiết bị đã được cài đặt Docker Engine. Sau khi tạo Dockerfile, người dùng sẽ có 1 Container lưu trữ bộ thư viện và ứng dụng của mình.
  •  Push: có được container sẽ được người dùng push lên đám mây và lưu trữ tại đó. Thao tác này được thực hiện qua mạng Internet.
  •  Pull, Run: thao tác này áp dụng khi người dùng muốn truy cập container này bằng 1 thiết bị khác (đã được cài đặt Docker Engine) thì yêu cầu phải Pull container này về máy và cho phép quá trình Run Container diễn ra.