Docker cơ bản P1


1.Tại sao chúng ta cần docker?

 Có bao giờ các bạn gặp tình huống ứng dụng của bạn chạy oke trên laptop của bạn nhưng lại không chạy trên máy của tester hoặc tệ hơn nữa lên môi trường production nó cũng không chạy đúng như trên chạy laptop của dev.


 Vì vâỵ nếu có một giải pháp giúp cho việc building,deploying và running ứng dụng một cách dễ dàng và đồng bộ giữa các môi trường thì thật tuyệt vời đúng không?Rất may mắn là các công ty hàng đầu đã nghĩ ra các giải pháp có thể nói rất bá đạo để giải quyết vấn đề này rồi,đó là docker,hôm nay chúng ta cùng nhau tìm hiểu về docker là cái gì mà được dùng nhiều thế nhé!

2.Lịch sử ra đời.
 Trước khi tìm hiểu docker là gì?Chúng ta nên tìm hiểu qua về nền tảng công nghệ mà docker sử dụng.
Mô hình deploy app thủa sơ khai

 Ngược dòng quá khứ từ thủa sơ khai khi muốn deploy một app lên server người ta sẽ tìm một máy chủ vật lý sau đó cài đặt hệ điều hành(OS) lên sau đó cài đặt application lên và chạy.Cách này đơn giản nhưng lại tốn kém tài nguyên.

 Tiếp theo đó là đến thời kỳ sử dụng công nghệ ảo hoá(Virtual Machine).Bản chất VMs mô phỏng máy thật tính thực thi các chương trình.VMs chạy trên máy vật lý sử dụng một thứ gọi là "hypervisor".
Mô hình công nghệ ảo hóa

hypervisor
có thể là phần cứng,phần mềm hoặc có thể là một bản firmware chạy trực tiếp trên máy thật(Host machine),có chức năng cho phép nhiều máy ảo chạy trên nó.Về mặt tài nguyên hệ thống khi chạy máy ảo bạn cũng cần cung cấp "cứng" dung lượng ổ cứng cũng như ram.Nếu các bạn đã từng cài và sử dụng các máy ảo như VMWare...thì chắc sẽ nhớ lúc cài đặt sẽ phải chia dung lượng ram và ổ cứng cho máy ảo như thế nào.

 Ở bước tiến hóa tiếp theo người ta sinh ra công nghệ containerlization,công nghệ này không cung cấp sự ảo hóa về phần cứng như VM.Mọi thứ sẽ được đóng gói thành container.Một container cung cấp sự ảo hóa ở cấp hệ điều hành bằng một khái niệm trừu tượng gọi là "user space".Một điểm khác biệt lớn giữa container và VM đó là các container chia sẻ  host system’s kernel (Host OS) với các container khác.
Mô hình công nghệ containerlization


 Có thể nói là khi nào cần tài nguyên thì được cấp, cần bao nhiêu thì cấp bấy nhiêu, như vậy việc tận dụng tài nguyên đã tối ưu hơn.

 Container nó là một giải pháp để chuyển giao phần mềm một cách đáng tin cậy giữa các môi trường máy tính khác nhau bằng cách:
  • Tạo ra một môi trường chứa mọi thứ mà phần mềm cần để có thể chạy được.
  • Không bị các yếu tố liên quan đến môi trường hệ thống làm ảnh hưởng tới.
  • Cũng như không làm ảnh hưởng tới các phần còn lại của hệ thống.
Docker được base trên nền tảng công nghệ containerlization được trình bày phía trên.

3.Docker là gì?


Nhận xét

Đăng nhận xét

Bài đăng phổ biến từ blog này

Cài đặt SSL cho website sử dụng certbot

Xây dựng một hệ thống comment real-time hoặc chat đơn giản sử dụng Pusher

CÁC BÀI TẬP SQL CƠ BẢN - PART 1

Xây dựng một hệ thống tracking hành vi người dùng (phần 1)

Xây dựng một hệ thống tracking hành vi người dùng (phần 2)

Enterprise architecture trên 1 tờ A4

Web caching (P2)

Bàn về async/await trong vòng lặp javascript

Web caching (P1)

Cài đặt môi trường để code website Rails