2015-09-25 12 views
12

Docker làm gì với hệ thống Tệp Liên kết (như AUFS) để tạo vùng chứa? Nếu Docker đã phải sử dụng một hệ thống tập tin thông thường thay vì một hệ thống tập tin công đoàn thì điều gì sẽ là nhược điểm?Tại sao Docker cần Hệ thống Tệp Công đoàn

Tôi đang tìm kiếm chi tiết kỹ thuật/nội bộ cụ thể và không phải là câu trả lời cấp cao.

Trả lời

18

Nó được sử dụng để:

  • tránh sao chép một bộ hoàn chỉnh các file mỗi khi bạn chạy một hình ảnh như một container mới
  • cô lập thay đổi cho một hệ thống tập tin chứa trong lớp riêng của mình, cho phép cùng container để được khởi động lại từ một nội dung được biết đến (vì lớp với những thay đổi sẽ bị sa thải khi container được lấy ra)

Đó UnionFS:

triển khai union mount cho các hệ thống tệp khác. Nó cho phép các tệp và thư mục của các hệ thống tệp riêng biệt, được gọi là các nhánh, được bao phủ một cách minh bạch, tạo thành một hệ thống tệp đơn nhất.
Nội dung của các thư mục có cùng đường dẫn trong các nhánh được hợp nhất sẽ được nhìn thấy cùng nhau trong một thư mục được hợp nhất duy nhất, trong hệ thống tệp ảo mới.

Điều này cho phép một hệ thống tập tin để xuất hiện như ghi, nhưng mà không thực sự cho phép viết để thay đổi hệ thống tập tin, còn được gọi là copy-on-write

Nếu bạn không có UnionFS, một hình ảnh 200MB chạy 5 lần như 5 tách container sẽ có nghĩa là 1GB không gian đĩa.

Xem thêm tại "How does a Docker image work?".
Để biết chi tiết kỹ thuật nhiều hơn, xem:

+0

Ngoài ra, đối với những người lưu trữ hình ảnh docker trên thiết bị lưu trữ SAN trên chương trình phụ trợ, lượng truy cập bộ nhớ cache khổng lồ phải là giấc mơ của quản trị viên lưu trữ. – CivFan

Các vấn đề liên quan