DOCKER LÀ GÌ?
Chắc các bạn đã nghe rất nhiều cụm từ này gần đây, vậy thực ra docker
là gì?
Một định nghĩa mà mình tìm hiểu thấy dễ hiểu là:
Docker là gì? Đây là một open platform cung cấp cho người sử dụng những công cụ và service để người sử dụng có thể đóng gói và chạy chương trình của mình trên các môi trường khác nhau một cách nhanh nhất.
Còn theo ý hiểu đơn thuần của mình khi sử dụng, thì docker đóng gói và cài đặt môi trường cho chương trình rất là nhanh. Giả sử như trước đây mình cần setup một môi trường cho hệ thống yêu cầu phải dùng cùng lúc 4 loại database mongo, postgresql, redis, mysql, thay vì phải cài và chạy cho từng con, mình chỉ cần chạy một lệnh docker-compose up
vậy là xong =))
Vậy docker có những ưu điểm gì?
Giả lập môi trường trên server ở dưới máy local Bình thường, khi một dự án run dưới local chạy demo thì ngon vãi nhưng khi deploy lên server thì sập vỡ mặt, mà nguyên nhân cơ bản liên quan đến vụ nè là do môi trường của server khác với môi trường của local, ví dụ local mình đang xài Ubuntu mà server lại chơi CenOS, không thì cũng kiểu, chơi ruby 2.3
còn server thì lại phang ruby 2.2.3
.
Vậy với docker
ta có thể giả lập hoàn toàn môi trường server dưới local một cách hoàn hảo. =))
Trải nghiệm và dùng thử một hệ điều hành mới Đơn giản thôi, không cần phải dùng virtua studio
làm gì cả docker
là đủ rùi =))
Lưu trữ và chia sẻ setup môi trường dự án cho nhóm Cái nè hay nè, trước đây khi handover dự án, phần setup môi trường cho dự án rất lằng nhằng và phải lưu lại nhiều doc hướng dẫn là lưu ý khi cài đặt môi trường, nhưng giờ đây, mình chỉ cần share container
của docker là đã giảm được quá nửa document setup môi trường rùi, không chỉ vậy, nó còn thuận tiện và đơn giản cho các thành viên trong team trong việc tìm hiểu về môi trường hệ thống khi join vào dự án
Test song song Có những automation test khá là nặng và tốn thời gian (như việc tương tác mạng, upload, download chẳng hạn), nếu chạy test trên 1 máy thì sẽ rất tốn thời gian.
Ta tạo ra nhiều Container giống nhau (việc tạo này cực kỳ đơn giản vì nó dùng chung 1 file gốc – Image), sau đó chi task ra cho chúng thực hiện cùng 1 lúc => tiết kiệm được thời gian và tận dụng được tài nguyên của server (hoặc của máy mình).
Test app trên một hệ điều hành khác Khi app của bạn đã chạy ngon trên Ubuntu, bạn muốn xem thử tình trạng của nó trên CentOS thì làm thế nào? không lẽ lại phải setup máy ảo -_- . thôi khỏi, chạy docker
cho nhanh =))
Hi vọng bạn đã giải đáp được câu hỏi docker là gì qua bài viết ngày hôm nay!
Bài viết cùng chuyên mục
-
Pha cà phê bằng cốc sứ có tốt không?
07-04-2023