Container từ dùng để chỉ một công nghệ ảo hóa nhẹ có sẵn trên các nhân Linux hiện đại, công nghệ này rất giống với các nhà tù FreeBSD.
Một hạt nhân Linux cũ hơn, không chứa được, có thể chạy các tiến trình đồng thời. Một số thuộc tính của hệ thống là riêng tư để xử lý, như môi trường quy trình hoặc bộ nhớ quy trình: chỉ có quá trình sở hữu các thuộc tính này và chính hệ điều hành mới có thể truy cập vào dữ liệu này. (Có rất nhiều sơ hở, như một số triển khai ps , nhưng về cơ bản là đúng!) Một số thuộc tính khác được chia sẻ giữa các quy trình, như hệ thống tệp và giao diện mạng chẳng hạn.
Một hạt nhân Linux hiện đại, có khả năng chứa, có thể xử lý nhiều thuộc tính của hệ thống dưới dạng dữ liệu riêng liên quan đến một quy trình hoặc một nhóm các quy trình. Bối cảnh kết quả là một thùng chứa và thay vì chạy một chương trình trong các thùng chứa ban đầu của Cameron, sử dụng hệ thống tệp và giao diện mạng được khởi tạo bởi hệ điều hành, có thể chạy các quy trình trong các thùng chứa khác, để chúng thấy một hệ thống tệp khác và danh sách khác nhau của các giao diện mạng. Do đó, hai quá trình chạy trong các thùng chứa riêng biệt chỉ thực sự chia sẻ kernel. Bạn có thể quen thuộc với lệnh chroot có thể chạy một quy trình trong hệ thống phân cấp tệp riêng biệt, các thùng chứa đưa ý tưởng đi thêm một vài bước.
Tất nhiên, đây chỉ là một lời giải thích rất thô thiển, nhưng tôi hy vọng nó sẽ giúp làm rõ ý tưởng về các container là gì. Bây giờ, chúng tốt cho cái gì?
Một giao diện phổ biến cho các khả năng chứa của các nhân Linux được triển khai bởi docker, một tiện ích dòng lệnh có thể được sử dụng để tạo ra các vật phẩm đại diện cho các hệ thống tệp ( hình ảnh docker ) và chạy các quy trình trong các thùng chứa nơi các hệ thống tệp này có thể truy cập được. Bộ phần mềm này cũng có thể xây dựng các hệ thống mạng ảo đặc biệt để cho phép một số container giao tiếp trên một mạng riêng.
Các công nghệ dựa trên container thuận tiện để:
- Mô tả triển khai phức tạp có thể mở rộng .
- Cung cấp cho các nhà phát triển ứng dụng một môi trường rất giống với môi trường sản xuất.
- Triển khai mẫu máy chủ bất biến, vì các tạo phẩm phần mềm thường mô tả một hệ điều hành đầy đủ, không chỉ là một gói ứng dụng.
(Như bạn có vẻ quen thuộc với các công nghệ ảo hóa khác như Virtual Box, bạn có thể nhận xét rằng các công nghệ này cũng có thể giải quyết thuận tiện ba điểm trên. Ngày nay, có khá nhiều công nghệ ảo hóa Một số bối cảnh nhất định với sự phổ biến của ngôn ngữ máy tính: có thể phụ thuộc vào giá trị kỹ thuật của từng giải pháp riêng lẻ, nhưng cũng phụ thuộc vào rất nhiều yếu tố mà tôi sẽ chỉ gắn nhãn cơ hội xác thực.