Docker đã sử dụng LinuX Containers (LXC) trước đó, nhưng chuyển sang runC (trước đây gọi là libcontainer), chạy trong cùng hệ điều hành với máy chủ của nó. Điều này cho phép nó chia sẻ rất nhiều tài nguyên hệ điều hành máy chủ. Nó cũng sử dụng hệ thống tập tin lớp như AuFS. Nó cũng quản lý mạng cho bạn.
AuFS là hệ thống tệp được phân lớp, vì vậy bạn có thể có phần chỉ đọc và phần viết và kết hợp chúng lại với nhau. Vì vậy, bạn có thể có các phần phổ biến của hệ điều hành là chỉ đọc, được chia sẻ giữa tất cả các vùng chứa của bạn và sau đó cung cấp cho mỗi vùng chứa gắn kết riêng của nó để viết.
Vì vậy, giả sử bạn có hình ảnh vùng chứa có kích thước 1GB. Nếu bạn muốn sử dụng một máy ảo đầy đủ, bạn sẽ cần phải có 1GB lần x số máy ảo mà bạn muốn. Với LXC và AuFS bạn có thể chia sẻ số lượng lớn của 1GB và nếu bạn có 1000 vùng chứa, bạn vẫn chỉ có thể có ít hơn 1 GB dung lượng cho hệ điều hành vùng chứa, giả sử tất cả chúng đều chạy cùng một hình ảnh OS.
Von, bạn có thể vui lòng giải thích thêm về cách nó dựa vào hạt nhân chủ, nếu nó đang kéo hạt nhân riêng của mình – gaurav
@gaurav thì * không * kéo hạt nhân riêng của nó: nó dựa vào hạt nhân đã có. – VonC
Voc, nhưng chúng ta biết centos, ubuntu có hạt nhân khác nhau thì làm thế nào nó có thể dựa vào hạt nhân chủ, làm thế nào ubuntu có thể sử dụng hạt nhân centos – gaurav