Ưu điểm của Docker rất to lớn

Một phần của tài liệu XÂY DỰNG WEBSITE HỖ TRỢ TRONG VIỆC HỌC TẬP VÀ GIẢNG DẠY CỦA HỌC SINH VÀ GIÁO VIÊN BẰNG NGÔN NGỮ PHP (Trang 49 - 52)

36

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

Nhược điểm:

Docker container nhỏ hơn và yêu cầu ít tài nguyên hơn máy ảo với máy chủ và cơ sở dữ liệu. Đồng thời, Docker sẽ sử dụng nhiều tài nguyên hệ thống như bộ lập lịch kernel của máy chủ sẽ cho phép. Bạn không nên mong đợi Docker tăng tốc ứng dụng theo bất kỳ cách nào.

Hơn thế nữa, Docker thậm chí có thể làm cho nó chậm hơn. Nếu bạn đang làm việc với nó, bạn nên đặt giới hạn về dung lượng bộ nhớ, CPU hoặc chặn IO mà bộ chứa có thể sử dụng. Mặt khác, nếu kernel phát hiện bộ nhớ của máy chủ đang chạy quá thấp để thực hiện các chức năng hệ thống quan trọng, nó có thể bắt đầu giết chết các quy trình quan trọng. Nếu quá trình sai bị giết (bao gồm cả Docker), hệ thống sẽ không ổn định.

Thật không may, các điều chỉnh bộ nhớ của Docker – ưu tiên hết bộ nhớ trên Docker daemon – không giải quyết được vấn đề này. Ngược lại, một lớp bổ sung giữa một ứng dụng và hệ điều hành cũng có thể dẫn đến việc giảm tốc độ. Tuy nhiên, mức giảm này sẽ không đáng kể. Docker container không được cách ly hoàn toàn và không chứa một hệ điều hành hoàn chỉnh như bất kỳ máy ảo nào.

Ưu điểm bảo mật lớn nhất của Docker là nó chia ứng dụng thành các phần nhỏ hơn. Nếu bảo mật của một phần bị xâm phạm, phần còn lại sẽ không bị ảnh hưởng.

Tuy nhiên, trong khi các quy trình riêng biệt trong các container hứa hẹn cải thiện bảo mật, tất cả các container đều chia sẻ quyền truy cập vào một hệ điều hành máy chủ duy nhất. Bạn có nguy cơ chạy các container Docker với sự cô lập không đầy đủ. Bất kỳ mã độc hại có thể có quyền truy cập vào bộ nhớ máy tính của bạn.

Có một thực tế phổ biến để chạy rất nhiều container trong một môi trường duy nhất. Đây là cách bạn làm cho ứng dụng của mình bị tấn công theo kiểu tấn công Tài nguyên lạm dụng trừ khi bạn giới hạn khả năng của bộ chứa tài nguyên. Để có hiệu quả và cách ly tối đa, mỗi container nên giải quyết một lĩnh vực quan tâm cụ thể.

37

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

Một vấn đề khác là cấu hình mặc định của Docker – người dùng không được đặt tên. Không gian tên cho phép tài nguyên phần mềm chỉ sử dụng các tài nguyên khác nếu chúng thuộc về một không gian tên cụ thể.

Chạy các ứng dụng với Docker ngụ ý chạy daemon Docker với quyền root. Bất kỳ quy trình nào thoát ra khỏi Docker container sẽ có cùng đặc quyền trên máy chủ như đã thực hiện trong vùng chứa. Chạy các quy trình của bạn bên trong các thùng chứa như một người dùng không có đặc quyền có thể đảm bảo an ninh. Nó phụ thuộc vào khả năng bạn thêm hoặc loại bỏ. Để giảm thiểu rủi ro khi đột nhập container Docker, bạn không nên tải xuống các container sẵn sàng sử dụng từ các nguồn không đáng tin cậy.

38

SVTH: Nguyễn Quang Trung Hiếu – Lớp: 17CNTTC

Một phần của tài liệu XÂY DỰNG WEBSITE HỖ TRỢ TRONG VIỆC HỌC TẬP VÀ GIẢNG DẠY CỦA HỌC SINH VÀ GIÁO VIÊN BẰNG NGÔN NGỮ PHP (Trang 49 - 52)