Docker - Chú cá voi xanh cứu cánh của hàng triệu lập trình viên
Docker - Chú cá voi xanh cứu cánh của hàng triệu lập trình viên
Chắc hẳn bạn đã bắt đầu nghe cái tên docker khi bước vào kỳ làm khóa luận cũng như lần đầu đi làm. Vậy bạn đã hiểu rõ Docker là gì chưa?
Bài viết này không đi sâu vào Docker mà chỉ giới thiệu cơ bản!
Hãy tưởng tượng rằng bạn đang đi làm trong một công ty, bạn viết xong một chức năng của chương trình, và muốn gửi đến cho tester trong công ty bạn.
Tuy nhiên, để chạy một project không hề đơn giản, bạn cần phải setup và chạy nhều ứng dụng nền để khởi động được nó.
Việc thiết lập và chạy các backgrond applications trên các máy khác nhau cũng là một vấn đề. Có thể chương trình hoạt động được trên máy bạn, nhưng khi gửi cho tester thì không hoạt động được, do một số nguyên nhân như: MySql Server không khớp phiên bản, thiết lập thông số không đúng,... hoặc đơn giản chỉ là là background applications bị lỗi.
Chúng ta cần tìm cách để project của chúng ta thống nhất chung một môi trường. Vậy giải pháp ở đây là gì?
Trong khoảng những năm 2000, trước khi Docker ra đời, có một giải pháp cho vấn đề này: Sử dụng Virtual Machine.
Bằng việc sử dụng VM, bạn có thể tạo một OS độc lập và cài project cũng như background projects bên trong, và gửi toàn bộ cho tester. Như vậy, bên tester sẽ không cần phải cài lại các background applications, cũng như đảm bảo rằng chương trình sẽ hoạt động trơn tru.
Một vấn đề của Virtual Machine mà chắc hẳn ai cũng đều biết: Hiệu năng.
Việc chạy một VM tốn rất nhiều tài nguyên, cũng như chương trình bên trong hoạt động chậm và kém hiệu quả. Những ai lập trình mobile cũng sẽ hiểu rằng việc chạy một VM Android cũng đã tiêu tốn tài nguyên máy tính như thế nào!
Chính vì vậy, vào năm 2010, một nhóm 4 người Kamel Founadi, Solomon Hykes, and Sebastien Pahl đã thành lập công ty startup và xin tài trợ từ Y Combinator - ‘vườn ươm’ startup nổi tiếng nhất nước Mỹ. Sau đó vào năm 2013, công ty giới thiệu với công chúng phần mềm có tên là Docker. Phần mềm đã giải quyết vấn đề muôn thuở mà không cần phải thông qua bất kỳ một VM nào cả. Nghe vi diệu không? Hãy cùng xem cách nó hoạt động nhé!
Một cách hiểu đơn giản là, với Virtual Machine sẽ tạo một virtual OS, còn với Docker sẽ tạo các virtual background application.
Có nghĩa là, thay vì gửi cả một OS, bạn chỉ cần gửi các container chứa các background application, và project của bạn.
Các bạn có biết tại sao chương trình Docker chạy rất mượt trên Linux, còn đối với Windows khi cài đặt, các bạn luôn gặp lỗi và cần phải thực hiện một vài bước setup mới sử dụng được không? Tại vì các container này chạy trên Docker Engine, mà Docker Engine sử dụng host Linux kernel. Vì vậy khi bạn xem hướng dẫn cài đặt Docker trên Windows ở document chính chủ, họ thường yêu cầu bạn setup một WSL 2 (Windows Subsystem for Linux), đây là một feature của Windows giúp vận hành một kernel Linux mà không cần thông qua một phần mềm Virtual Machine riêng biệt.
Giao diện document của Docker
Cách thiết lập WSL trên trang Microsoft
Sau khi cài đặt xong, Docker của bạn đã có thể hoạt động ổn định. Còn lại việc tạo các container và hoạt động như thế nào thì... các bạn tự tìm hiểu nhé hehe.
Kết luận: Docker là một chủ đề thú vị và được ứng dụng rộng rãi. Hi vọng thông qua bài viết này, bạn đã có thể hiểu cơ bản hơn về Docker rồi !! Cảm ơn các bạn đã đọc đến đây nhé hehe!!
Nội dung bài viết thuộc về Lê Công Diễn.
Người viết: Lê Công Diễn
Mang đi nhớ ghi nguồn
Nhận xét
Đăng nhận xét