Docker là gì ? sơ lược về Docker (phần 1)

Docker là gì ? sơ lược về Docker (phần 1)

Docker là một nền tảng mở để phát triển, vận chuyển và chạy các ứng dụng. Docker cho phép bạn tách các ứng dụng khỏi cơ sở hạ tầng để bạn có thể phân phối phần mềm một cách nhanh chóng. Với Docker, bạn có thể quản lý cơ sở hạ tầng của mình giống như cách bạn quản lý các ứng dụng của mình. Bằng cách sử dụng lợi thế của các phương pháp luận của Docker để vận chuyển, thử nghiệm và triển khai mã một cách nhanh chóng, bạn có thể giảm đáng kể độ trễ giữa việc viết mã và chạy mã trong sản xuất.

Docker platform

Docker cung cấp khả năng đóng gói và chạy ứng dụng trong một môi trường cô lập lỏng lẻo được gọi là vùng chứa. Tính cách ly và bảo mật cho phép bạn chạy nhiều vùng chứa đồng thời trên một máy chủ nhất định. Các vùng chứa có trọng lượng nhẹ vì chúng không cần tải thêm của trình giám sát , nhưng chạy trực tiếp trong nhân của máy chủ. Điều này có nghĩa là bạn có thể chạy nhiều vùng chứa hơn trên một tổ hợp phần cứng nhất định so với khi bạn đang sử dụng máy ảo. Bạn thậm chí có thể chạy vùng chứa Docker trong các máy chủ thực sự là máy ảo!

Docker cung cấp công cụ và nền tảng để quản lý vòng đời của các vùng chứa của bạn:

  • Phát triển ứng dụng của bạn và các thành phần hỗ trợ của nó bằng cách sử dụng vùng chứa.
  • Vùng chứa trở thành đơn vị phân phối và thử nghiệm ứng dụng của bạn.
  • Khi bạn đã sẵn sàng, hãy triển khai ứng dụng của bạn vào môi trường sản xuất, dưới dạng vùng chứa hoặc dịch vụ được điều phối. Điều này hoạt động giống nhau cho dù môi trường sản xuất của bạn là trung tâm dữ liệu cục bộ, nhà cung cấp đám mây hay kết hợp cả hai.

Docker Engine

Docker Engine là một ứng dụng client-server chủ với các thành phần chính sau:

  • Máy chủ là một loại chương trình chạy lâu dài được gọi là quy trình daemon (docker command).
  • Một API REST chỉ định các giao diện mà chương trình có thể sử dụng để nói chuyện với daemon và hướng dẫn nó phải làm gì.
  • Máy khách giao diện dòng lệnh (CLI) (ldocker command).
devcoffee-tech-engine-components-flow
Docker Engine Components Flow

CLI sử dụng API Docker REST để điều khiển hoặc tương tác với trình nền Docker thông qua các lệnh CLI kịch bản hoặc trực tiếp. Nhiều ứng dụng Docker khác sử dụng API và CLI cơ bản.

Daemon tạo và quản lý các đối tượng Docker, chẳng hạn như hình ảnh, vùng chứa, mạng và ổ đĩa.

Note: Docker được cấp phép theo giấy phép nguồn mở Apache 2.0. (tức là miễn phí :D)

Docker có thể được dùng để làm gì ?

Phân phối nhanh chóng, nhất quán các ứng dụng của bạn

Docker hợp lý hóa vòng đời phát triển bằng cách cho phép các nhà phát triển làm việc trong môi trường tiêu chuẩn hóa bằng cách sử dụng các vùng chứa cục bộ cung cấp các ứng dụng và dịch vụ của bạn. Các vùng chứa rất tuyệt vời để tích hợp liên tục và quy trình phân phối liên tục (CI / CD).

Hãy xem xét tình huống ví dụ sau:

  • Các nhà phát triển của bạn viết mã cục bộ và chia sẻ công việc của họ với đồng nghiệp bằng cách sử dụng Docker container.
  • Họ sử dụng Docker để đẩy các ứng dụng của họ vào môi trường thử nghiệm và thực hiện các thử nghiệm tự động và thủ công.
  • Khi các nhà phát triển tìm thấy lỗi, họ có thể sửa chúng trong môi trường phát triển và triển khai lại chúng vào môi trường thử nghiệm để kiểm tra và xác nhận.
  • Khi quá trình thử nghiệm hoàn tất, việc nhận bản sửa lỗi cho khách hàng cũng đơn giản như đẩy hình ảnh cập nhật vào môi trường sản xuất.


Mở rộng và triển khai đáp ứng

Nền tảng dựa trên vùng chứa của Docker cho phép khối lượng công việc có tính di động cao. Bộ chứa Docker có thể chạy trên máy tính xách tay cục bộ của nhà phát triển, trên máy vật lý hoặc máy ảo trong trung tâm dữ liệu, trên các nhà cung cấp đám mây hoặc trong nhiều môi trường.

Tính di động và tính chất nhẹ của Docker cũng giúp bạn dễ dàng quản lý động khối lượng công việc, mở rộng hoặc chia nhỏ các ứng dụng và dịch vụ khi nhu cầu kinh doanh yêu cầu, trong thời gian gần thực.

Chạy nhiều khối lượng công việc hơn trên cùng một phần cứng

Docker nhẹ và nhanh. Nó cung cấp một giải pháp thay thế khả thi, hiệu quả về chi phí cho các máy ảo dựa trên hypervisor, vì vậy bạn có thể sử dụng nhiều hơn khả năng tính toán của mình để đạt được các mục tiêu kinh doanh của mình. Docker hoàn hảo cho các môi trường mật độ cao và triển khai vừa và nhỏ, nơi bạn cần làm nhiều việc hơn với ít tài nguyên hơn.

Docker architecture (Kiến trúc của Docker)

Docker sử dụng kiến trúc máy khách-máy chủ. Ứng dụng khách Docker nói chuyện với Docker daemon, trình nền này thực hiện công việc xây dựng, chạy và phân phối vùng chứa Docker của bạn. Ứng dụng khách Docker và daemon có thể chạy trên cùng một hệ thống hoặc bạn có thể kết nối ứng dụng khách Docker với trình nền Docker từ xa. Ứng dụng khách Docker và daemon giao tiếp bằng API REST, qua ổ cắm UNIX hoặc giao diện mạng.

devcoffee-tech-docker-architecture
Kiến trúc của Docker

 

Tạm dừng phần 1 ở đây - Hẹn gặp lại trong phần tiếp theo