Computer >> Máy Tính >  >> Phần mềm >> Máy ảo

LXD và bộ chứa Docker lồng nhau - Hướng dẫn

Chào mừng đến với Tuần báo Arcane. Hôm nay, tôi muốn nói chuyện với bạn về một vấn đề mà bạn có thể sẽ không gặp phải, nhưng nếu gặp phải thì bạn sẽ muốn có một giải pháp nhanh chóng và tiện dụng. Công cụ có sẵn:LXD container, Docker. Nhiệm vụ trong tầm tay:Bạn muốn chạy cả hai cùng một lúc. Cụ thể hơn, bạn muốn sinh ra một bộ chứa LXD, rồi bên trong nó, bắt đầu một bộ chứa Docker. Tại sao? Tại sao không.

Sau đó, vấn đề bạn gặp phải như sau. Quá trình thực thi Docker không thành công với lỗi sau:docker:Phản hồi lỗi từ daemon:tạo thời gian chạy OCI không thành công:container_linux.go:367:bắt đầu quá trình vùng chứa gây ra:process_linux.go:495:khởi tạo vùng chứa gây ra:rootfs_linux.go:60:gắn kết " proc" thành rootfs tại "/proc" gây ra:quyền bị từ chối:không xác định. Rất nhiều văn bản ở đó. Chúng ta hãy gỡ lỗi này, phải không?

Vấn đề chi tiết hơn

Thông thường, khi bạn chạy bộ chứa Docker, bạn sẽ không gặp bất kỳ sự cố nào khi truy cập /proc. Nhưng lỗi trên cho chúng tôi biết điều này là không thể thực hiện được. Đó là một thông báo khá khó hiểu, bởi vì nó có rất nhiều thông tin, điều này tạo ra một dấu vết sai lệch. Đúng, có thể có rất nhiều lý do khiến bạn gặp phải sự cố. Trong trường hợp của tôi, thiết lập hoàn toàn mới, đơn giản, không có bất kỳ tùy chỉnh điên rồ nào. Không có lỗi nào khác và đối với tất cả các mục đích thực tế, Docker đã được cài đặt và định cấu hình chính xác.

Sau đó, tôi nghĩ, tôi có thể muốn xem cách LXD thực hiện mọi việc và có lẽ điều này có thể giúp tôi hiểu rõ hơn về lý do tại sao tôi gặp sự cố này. Thật vậy, tôi đã sớm tìm thấy một bài viết cũ, bán tài liệu về LXD, giải thích tình hình. Vì lý do bảo mật, các vùng chứa không được phép truy cập /proc và /sys theo những cách không an toàn. Một giải pháp thay thế cho vấn đề này - với các hàm ý bảo mật có liên quan - là cho phép truy cập như vậy.

Giải pháp

Điều bạn cần làm là cho phép lồng các vùng chứa bị ảnh hưởng.

lxc khởi chạy "hình ảnh" "tên vùng chứa" -c security.nesting=true

Nếu vùng chứa tồn tại, thì trước khi bạn bắt đầu vùng chứa đó:

cấu hình lxc đặt "tên vùng chứa" security.nesting true

Và sau đó bắt đầu vùng chứa:

lxc bắt đầu "tên vùng chứa"

Nếu nó đang chạy, hãy dừng vùng chứa, đặt chính sách rồi bắt đầu lại. Hoạt động này không phá hủy, vì vậy nếu bạn chỉ gặp phải sự cố sau khi đã tạo vùng chứa, thì bạn sẽ không mất bất kỳ công việc hoặc dữ liệu nào bên trong vùng chứa đó. Cài đặt cũng có thể đảo ngược hoàn toàn. Và công việc của chúng ta đã hoàn thành ở đây, các bạn.

Kết luận

Thật thú vị khi thấy rằng tôi mới chỉ gặp phải một sự cố đã tồn tại được khoảng năm năm lẻ. Hoặc có rất nhiều người đang gặp phải vấn đề này, tuy nhiên, thông tin rất khan hiếm và phân tán. Chà, nếu bạn đang sử dụng các vùng chứa lồng nhau, thì bạn muốn chỉnh sửa chính sách bảo mật cho các vùng chứa bị ảnh hưởng trong LXD. Đây là một thủ thuật tương đối đơn giản. Tất nhiên, còn nhiều điều nữa, chẳng hạn như các khái niệm về vùng chứa đặc quyền và không có đặc quyền cũng như các cân nhắc về bảo mật khác. Tuy nhiên, nếu công việc của bạn không liên quan đến bảo mật, thì thay đổi này sẽ không có bất kỳ nhược điểm nào.

Tài liệu tốt hơn sẽ giúp ích. Ít thông báo lỗi khó hiểu hơn. Trong lúc đó, hãy thử nghĩ xem tại sao, trong quá trình thiết lập của bạn, có thể có lỗi về quyền đối với những gì bạn đang cố gắng thực hiện và điều này sẽ giúp bạn đi đúng hướng. Khi bạn biết cách trình bày vấn đề, bạn đã hoàn thành 80%. Bây giờ bạn có thể làm các thùng chứa bên trong các thùng chứa, toàn bộ:Yo Dawn, I bầy bạn thích các thùng chứa, vì vậy chúng tôi đặt các thùng chứa vào các thùng chứa của bạn ... Inception. Tiền thưởng:hãy thử xem bạn có thể thực hiện bao nhiêu cấp độ lồng nhau trước khi vũ trụ nổ tung.

Chúc mừng.