Sự khác biệt giữa chroot và Docker


14

Tôi không hiểu sự khác biệt giữa docker và chroot. Vâng, nó tốt đẹp về bao bì đăng ký. Nhưng bằng cách nào đó tôi có cảm giác nó chỉ chroot với tiếng chuông và còi thêm.

Tôi biết tôi đang thiếu một cái gì đó. Sẽ thật tuyệt khi biết họ khác biệt như thế nào và nhu cầu của docker nếu chroot có thể làm điều gì đó tương tự.

Tôi cũng không thể tìm thấy Chroot Vs Docker này đủ rõ ràng.


Vâng, vâng, Docker không làm bất cứ điều gì mà kernel sẽ không làm cho bạn. Nó chỉ gói nó thành một công cụ ít nhiều mạch lạc và khá dễ sử dụng. Bạn có thể tự tạo Docker nếu bạn cảm thấy phiền khi thực hiện chroot, không gian tên, hạn ngạch, NAT và tất cả những thứ còn lại.
Gaius

Câu trả lời:


8

Chà, chuông và còi bổ sung được gọi là cách ly quá trình, một container chứa không gian tên riêng của nó từ kernel, điều đó có nghĩa là chương trình trong container không thể cố đọc bộ nhớ kernel hoặc ăn nhiều RAM hơn mức cho phép.

Nó cũng cách ly các ngăn xếp mạng, vì vậy hai quá trình có thể lắng nghe trên cổng 8080, ví dụ, bạn sẽ phải xử lý định tuyến ở cấp máy chủ, không có phép thuật nào ở đây, nhưng điều này cho phép xử lý định tuyến tại một nơi và tránh sửa đổi cấu hình quy trình thành lắng nghe một cổng miễn phí

Thứ hai, một chroot vẫn đọc / ghi, mọi thay đổi là vĩnh viễn, bộ chứa docker sử dụng aufssẽ bắt đầu từ một hệ thống tệp sạch mỗi khi bạn khởi chạy bộ chứa (các thay đổi được giữ nếu bạn dừng / khởi động IIRC).

Vì vậy, trong khi một container có thể được coi là process namespace+ chroot, thì thực tế phức tạp hơn một chút.


Lưu ý rằng aufskhông được sử dụng theo mặc định nữa. Bây giờ làoverlay2
Vitalii Vitrenko

Đúng, nhưng tôi nghĩ bây giờ có nhiều tài liệu giáo dục tham khảo aufs hơn overlay2 :)
Tensibai

Một quá trình bình thường không thể đọc bất kỳ bộ nhớ nào. Nếu bạn đang dựa vào Docker để bảo mật thì bạn đã làm sai ...
Gaius

@Gaius bạn đang đọc nhầm tôi, tôi chỉ đang cố gắng đưa ra manh mối tìm kiếm cho OP ... Thêm docker trong một đường ống phân phối với tất cả sự tự do mà nó mang lại cho nhà phát triển cho những gì họ sử dụng bên trong hoàn toàn không phải là điểm bảo mật. Tuy nhiên, không gian tên bảo vệ khỏi một loạt các lỗi tràn ngăn xếp và tràn bộ đệm theo bản chất.
Tensibai

5

Vâng, hoàn toàn có nhiều điều hơn là chrootđến mức họ có ít hoặc không có gì chung.

  • Một định dạng tệp tập lệnh được chuẩn hóa bao gồm ngữ nghĩa liên quan đến tác vụ một tay
  • Hình ảnh (bao gồm cả hình ảnh ở giữa ẩn danh), bộ nhớ đệm, đặt tên, tải xuống, v.v. bao gồm cả quản lý mạnh mẽ ( docker image prune...)
  • Các thùng chứa (bao gồm các hệ thống tệp tạm thời của riêng chúng, đặt tên, có thể docker execvào chúng, v.v.)
  • Quy trình quản lý ( docker container ...)
  • Kết nối mạng chỉ với một tùy chọn đơn giản, bao gồm kết nối mạng container-container-mạng, v.v.
  • Khối lượng (bao gồm cả khối lượng quản lý đặc biệt)
  • docker-compose hoặc swarm như nâng cấp cấu hình thấp để nhiều hơn nữa.
  • Sở thú lớn của các giải pháp khác dựa trên các container được neo (OpenShift, v.v.).
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.