Docker và những điều bạn cần biết (P1)

Hello everyone, chúng ta lại gặp nhau nữa rồi, trong những topic mình chia sẽ lần trước liên quan đến WordPress nhiều nên cũng hơi chán rồi phải không nè ><, đổi gió 1 chút nha. Chủ để lần này sẽ là 1 kiến thức mới mình muốn chia sẽ đó chính là Docker, và mình sẽ chia chủ để lần này thành từng phần nhỏ để xoay quanh vào những kiến thức trọng tâm, đồng thời cũng để cho mọi người nắm được khái niệm rõ ràng hơn về Docker nhé.

Nào cùng nhau vào việc chính thôi nào .

Example:

Để dàng dàng nắm được khái niệm về Docker, mình có 1 ví dụ như sau

1 app ứng dụng (có phần database sử dụng SQL) , code bằng PHP, và khi này cần phải chạy trong web server Apache (và việc cài đặt cũng tương đối tốt  thời gian ), để người khác dùng được app , cần phải deploy lên (git), sau đó người dùng clone về máy của mình để chạy (khả năng app clone về không chạy được do 1 vài yếu tố khách quan)

->thiếu thư viện khi clone về, lỗi từ người dùng cài đặt bị sai hoặc thiếu package, phiên bản khác nhau….

 

-> vấn đề code từ 1 nguồn và có thể đưa nó chạy được nhiều nơi, đảm bảo thư viện , phần mềm được cài chính xác thì khi đó để giải quyết được vấn đề này đơn giản là sử dụng Docker, mọi vấn đề sẽ được đơn giản hóa đi, đo Docker như 1 cái bọc khổng lồ gói gọn toàn bộ source code , thư viện…., và sẽ được mang đến những nơi mà người dùng khác sử dụng, chỉ cần mở bọc và chạy là xong rồi đó, thấy đơn giản hơn không nào.

1. Docker là gì ?

Là 1 công cụ giúp cho người dùng tối ưu hóa được công việc, thời gian, từ việc deploying cho đến running ứng dụng một cách dễ dàng thông qua sử dụng các Container.

Tách biệt các môi trường chạy code thành 1 container để dễ quản lý, dễ di chuyển, và dễ chia sẻ. Đây cũng là một trợ thủ đắc lực của DevOps đó nha.

2. Tính ứng dụng

  • Dựa vào đặc tính Container của Docker, có thể đóng gói nhanh ứng dụng.
  • Tốc độ khởi tạo Container nhanh nhẹ, chiếm ít tài nguyên.
  • Khả năng mở rộng , có thể chia nhỏ chức năng của ứng dụng thành nhiều container.

3. So sánh Docker và VM(Virtual machine)

Docker (container gói ứng dụng) Virtual Machine (máy ảo)
Tài nguyên gần như không bị giới hạn Bị giới hạn phần cứng
Tính thực thi hệ điều hành chạy phần Cần thông qua hệ điều hành thật -> máy ảo
Hiệu năng dùng docker engine để chạy Cần 1 máy tính cấu hình cao để chạy máy ảo
Tính bảo mật cài đặt cấu hình chính xác, tính bảo mật sẻ tốt hơn VM mang tính bảo mật cao

4. Khái niệm quan trọng trong Docker

DockerFile:

Đơn giản là 1 tập file hướng dẫn cách build ra Image

Docker Image:

Là nơi gói tập hợp các source code, các thư viện lại thành1 cục duy nhất

Container:

Là máy ảo chứa môi trường phần mềm, khi được run từ docker Image. Ở P1 này, mình chỉ giới thiệu khái quát về docker để mọi người có 1 cái nhìn sơ lược,

chưa cần phải đi sâu đâu nhé, hiểu được những gì docker có thể làm, rồi sau đó ở những phần tiếp theo chúng ta sẽ cùng đi sâu để tìm hiểu kĩ hơn nữa.

Cảm ơn mọi người đã dành thời gian cho chủ để lần này của mình, hẹn gặp lại mọi người lần tới nha ><

 

@ Nam – Cựu học viên Ironhack Việt Nam

Để lại một câu trả lời